I have successfully loaded and run the Audio Filter application on the eZDSP Stick. Now I want to modify the FIR filter with a new set of coefficients and increase the number of taps to 175. I have generated the coefficients with another program and have entered them into ref_data_bypass1.c. In addition, I have changed COEF_48 to specify the new number of taps.
I also changed the sampling rate from 48ksps to 12ksps.
The modified code builds and loads OK. However, when I monitor the output with headphones, these is a lot of spurious noise (buzzing) in the output. It does appear that the filter is doing its job as it attenuates the input signal when it is set to frequencies above the cutoff frequency of the new filter.
Does the XMIT_BUFF_SIZE also need to be changed? It is currently set for the original 48*2 value.
Do I also need to set the memory model to large? or huge? If so, what are the steps needed to configure the compiler and linker? (I am new to CCS)
Thanks.
Normal 0 false false false MicrosoftInternetExplorer4
Hi Milton,
The Audio Filter application uses the DSPLIB Block FIR filter, which requires an even number of filter taps and the XMIT_BUFF_SIZE must be greater than or equal to (number of filter taps * 2). These two items should resolve your buzzing issue.
More information on the filter can be found in the TMS320C55x DSP Library Programmer's Reference: http://focus.ti.com/docs/toolsw/folders/print/sprc100.html
Thanks,
Mark
Hi Mark,
Thanks for the reply. I discovered earlier today that making the number of taps an integral multiple of the DMA FIFO size works (while leaving the XMIT_BUFF_SIZE at the old value of 48*2) produces a working filter.
Is this a fluke, or does the XMIT_BUFF_SIZE really need to be >= to the number of taps in the FIR?
I'll try other FIRs with an even number of taps and keep the existing XMIT_BUFF_SIZE. If this does not work, I'll then try increasing XMIT_BUFF_SIZE to equal the number of FIR taps times 2.
Also, it would appear that I could eliminate the DMA and reduce the number of FIR filters by a factor of 2. I would then use an interrupt whenever data is available from the ADC, filter the L and R channels and output the filtered data to the DAC. Is there a problem with this approach?
Thanks again,
Milt Cram
I just tested a 100tap FIR without changing the XMIT_BUFF_SIZE. It works fine.
So, it looks like I can proceed.
In making further modifications to my code, I encountered this message--
Errors running builder "Generated Makefile Builder" on project EZDSP_AudioFilter
Cannot create file because existing file of wrong type exists: D:\eZDSP_Audio_Filter\USB_Stick_AudioFilter\EZDSP_AudioFilter\Debug.
What is the meaning of this message. I was making simple changes to the source code and trying to rebuild the project when this message popped up. Also, the Debug folder says "access denied" when I try to open it, or delete it. How can I eliminate this problem?
ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". TI AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY TI. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM TI.
Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.