Posted: September 17th, 2015

Estimating pitch of audio signals using BF561

In this assignment, you are required to implement an autocorrelation-based pitch estimation of an audio signal using BF561. The program should process a live audio signal, calculate the pitch and display the (quantised) result using LEDs.
There are many algorithms for estimating pitch with varying degree of sophistication and effectiveness. The notes below describe one simple method of reasonable effectiveness. The estimation may not be perfect.

This assignment is about DSP programming not audio analysis. The issue is not to investigate how the algorithm can be improved from an audio analysis perspective but to understand how best to achieve a good result using a fixed point digital signal processor. This may involve understanding how to minimise the amount of floating point computation, how to handle very large and very small values, and how to stage processing to keep the DSP operating efficiently. Clearly the first objective is to understand the algorithm and to obtain a correct implementation. To this end, it may be a good idea to first implement this program in Matlab on a desktop computer so that you have a reference programme and result to compare with the result of the DSP version of the program. To demonstrate that the DSP programme is working correctly you should build a version that will process the provided pre-recorded wav-file (which can be loaded into memory) and report the estimated pitch values. Ultimately you should demonstrate a programme that will process live audio recording.

Algorithm Description
An input audio signal s(n) is to be analysed at regular time intervals – this is 512 samples in our case when using the sampling frequency Fs=48kHz. At a given time ‘n’, calculate the autocorrelation function using the previous N (set to 4096) samples of the signal as:

Set the values of ‘k’ from 40 to 500. Start calculating the autocorrelation function rn(k) the first time at then sample n=4596 and then at sample 5108, 5620, etc.
For a given ‘n’, find the first peak of the autocorrelation function in the above range of ‘k’, which has the normalised autocorrelation value rn(k)/rn(0) above 0.7. If such peak does exist, find the index of that peak, which we denote by Dn. The estimate of the pitch at time ‘n’ is then Pn=Fs/Dn. If there is no normalised autocorrelation peak value above 0.7, set Pn to 0.
Display the value of Pn using LEDs such that a different LED is lit when the value is in intervals (0-50), (51-200), (201-400), (401-600), (601-800), (801-1000), and (1001-1200).

 

 

Report

The report should describe the whole programme, the use of buffers, the configuration of the audio codec, the calculation of the autocorrelation function, detection of peaks and pitch estimation and displaying using LEDs. Pay attention to explain how the implementation is computationally efficient, and comment on the effectiveness of the algorithms used and their implementation.

To evaluate the implementation and performance you might wish to make comparisons with an implementation on a PC. Report on your success in optimizing the implementation.
The report should identify which existing Blackfin DSP project has been used, how it has been adapted and you should provide a listing of the new software written. The body of the report should be no more than 15 pages plus programme listings.
The report should be typed and clearly written. There should be a title page bearing your student ID number, your name and a contents page. Each page should be numbered and the section headings should be numbered. All figures should have a caption underneath and each table a caption above. References should be cited and listed using the Birmingham Harvard system.

Place your order now for a similar paper and have exceptional work written by our team of experts to guarantee you A Results

Why Choose US

6+ years experience on custom writing
80% Return Client
Urgent 2 Hrs Delivery
Your Privacy Guaranteed
Unlimited Free Revisions

 

Expert paper writers are just a few clicks away

Place an order in 3 easy steps. Takes less than 5 mins.

Calculate the price of your order

You will get a personal manager and a discount.
We'll send you the first draft for approval by at
Total price:
$0.00
Live Chat+1-631-333-0101EmailWhatsApp