Reference no: EM133131676
Digital Signal Processing
Project: Sampling Rate Conversion
Objectives
To get familiar with signal processing commands in MATLAB. Q To understand the concept of upsampling and downsampling. Q To learn about multi-rate signal processing.
Project Description
This MATLAB project asks you to perform a sampling rate conversion on an audio signals. The name of the file is "speech dft.wav" and it can be downloaded from Blackboard. This input audio signal is quantized to 64 bits and sampled with a sampling frequency of 22,050 Hz. You are required to convert the signal to a sampling rate of 48,000 Hz in a computationally efficient manner. Although one conceptual way of realizing this sampling rate conversion process is to upsample the signal, lowpass filter, and downsample it, a cleverer implementation can lead to an implementation that is more efficient. To do this, you can exploit various techniques such as multistage filter implementation, and polyphase implementation.
You have to submit your work on Blackboard including a pdf file of your formal report and your MATLAB files. By the end of the project, you hopefully will have a much better understanding of both the theoretical aspect of the system as well as various issues in implementing a practical DSP system at a software level. For a better understanding of the project, it is described in three steps or parts each of which is explained separately in this section.
Part 1: Resampling by a Non-integer Factor
Create a MATLAB file and use the command "audioread" to read data from the audio file. In this part of project, you should also create and write a MATLAB function "SR Conv SingleStage.m" as a separate file. This function is to take one input signal with an associated sampling rate of 22,050 Hz, and returns an output signal at a sampling rate of 48,000 using the approach shown in Figure 1(b). Use commands "downsample" and "upsample" to compress or expand the signal sampling rate respectively. Since the cut- off frequency of low-pass filter is very small, using a sharp FIR filter will require a very high-order filter. So, instead, use 5th-order lowpass elliptic IIR filter with 0.1 dB passband ripple and 70 dB stopband attenuation. Use command "ellip" to generate the coefficients of the IIR filter. These coefficients will be the inputs to command "filter" to implement the low-pass filter. You can use the command "soundsc" to listen to the audio file you generate.
Part 2: Multi-stage Upsampling
In this part of the project, we want to resolve the issue of high-order FIR filter by performing a multi-stage interpolation. For that, you should create another MATLAB function and name it "SR Conv MultiStage.m". This function will perform the resampling using multi-stage interpolation. Use the maximum number of stages possible to perform interpolation. For the lowpass filter of each stage, use FIR filter with stopband frequency 20% larger than pass-band frequency, 0.03 dB passband ripple and 85 dB stopband attenuation. You can use command "designfilt" to create such filters. You will have to determine the required number of multiplications and additions. Your function should also output the number of multiplications and additions required for the filtering.
Part 3: Multi-stage Upsampling Using Polyphase Decomposition
In this part of the project, we want to reduce the computation complexity by using polyphase compo- nents in each stage of interpolation. For that, you should create another MATLAB function and name it "SR Conv Polyphase.m". Use the same filters that you used in part 2. Your function should also output the number of multiplications and additions required for the filtering.
Attachment:- Project-Sampling.rar