icon

Usetutoringspotscode to get 8% OFF on your first order!

An autocorrelation-based pitch estimation of an audio signal

Estimating pitch of audio signals using BF561

Specification
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).

Assessment
This assignment will be carried out by working individually. This assignment will be assessed by a workplan presentation, demonstration of the programme and a report as described in the attached assessment form. Please use this form to verify that you have addressed the relevant issues before you submit your report.
Workplan Presentation
Each student will be invited to give, in private, a 10 minute presentation of their plan of work for completing the assignment. This workplan should identify what needs to be
explained and plans for evaluation described. Brief written feedback will be given, within 72 hours of the presentation of the workplan.

Demonstration
Each demonstration will be in private. In the demonstration you will have 15 minutes:
1. 5 minutes to demonstrate a working system.
2. 5 minutes to explain the key features of what you have done (a maximum of 5 power point slides)
3. 5 minutes in which you will be questioned.

.

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.

Order now, for an amazing discount.


You can leave a response, or trackback from your own site.

Leave a Reply

Powered by WordPress | Designed by: Premium WordPress Themes | Thanks to Themes Gallery, Bromoney and Wordpress Themes