C#代写:INM 378 Digital Signal Processing

Introduction

这个作业要求处理游戏中的Digital Signal Processing,即数字信号,特别是对音频信号的处理。
信号都是流式信号(stream),处理的时候需要一帧一帧的进行。

The topic of this coursework is to implement frequency or time domain DSP functions for real-time and for data analysis.

Task

This coursework has a games stream and a data stream, which have some common and some specific tasks.
For the common task, implement a filter either in FMOD with C++ or C# (games stream) or in Matlab (data stream).
For the Data part, choose a dataset and apply prediction and classification using Fourier analysis, filtering and correlation.
For the Games part, implement the sound and music elements listed below your coursework for INM379 or INM376 with C++ or a new demo built using XNA and C# with the stub provided on Moodle.

  1. Common: DSP, controllable filter. Program a controllable filter based on a delay line If you do the Games track, implement the filter for real time use with a circular buffer in an FMOD custom DSP. If you do the Data track, implement a filter function offline use with filter modulated by a sine function at 2Hz.
  2. a. Games: 3D Sound: Place a sound source in a 3D world where it can be moved around using the mouse and/or keyboard. Make sure that the sound in the 3D world is adapted with distance roll-off including filtering, occlusion, and Doppler effect.
    Implement dynamic filter control for an object of your choice, e.g. for the engine of your car, based on the speed.
    b. Data: Character recognition: Program a character classifier using 2d-correlation to classify digits.
    Time series prediction: Use Fourier analysis for implementing a time series predictor.
    c. Games 2 (for pairs): 3D Occlusion: Implement a 3D objects in your game/demo, that you register with the FMOD framework to achieve an occlusion effect.
    Flanger: Implement a Flanger effect (time-varying delay) as an FMOD custom DSP effect, that apply to a sound source in your game.
    d. Theory (for pairs): Frequency domain filtering: Implement the filter from task 1 in the frequency domain. Use the SFFT and compare the results with task 1. Explain what the advantages and disadvantages of processing in the frequency and the time domain are.
  3. Give a presentation of your program. This serves to communicate your work to your fellow students and the lecturers, to verify that you did write the program yourself, and to give you feedback. If you do not give a presentation, you will receive 0 marks for the whole coursework.
  4. Report: Write a short report that explains how you solved the tasks, where to find the solutions in your submitted code and any specific points you would like me to pay attention to (no more than 600 words)

Background Information and Support

For every step of the coursework, relevant information, examples and data will be provided in the lectures and tutorials.

Coding Style

  • Your code must be properly indented.
  • Every method in your code must be commented w.r.t. its purpose, its parameters and its return values.
  • Comments and style will be marked together with the code.