How can I load 256 coeffs one time when I design a IIR filter?
hi ,
Coeffs are the velue of beta in the red pane in the filter.bmp, I want to use a table to set it , this is ok ?and how can I get it?
And I have the other problem about paste, it's troubleful to design a 256 taps IIR filter, I can design a 184 taps and can't do it any more , a error like error2.bmp will happen, why?
thanks
shanchanyue
sigmastudio
hi
The filter was showed in IIR.png , it is just two taps , and what I want to design was 256 taps like this.
but when i copy the things like the red pane again and again , the error will hanppen which is showed in error.png ,
for example, somewhere there are lots of line which i don't want , and somewhere there is no line appear which i want.
Is it possible that you mix up IIR and FIR filters, because a 256 order IIR filter is very unusual?
thanks for your Re, the filter's structure is in the structure.png , it looks like a FIR, but actually a IIR,
and i knew the reason of the error about paste,, because the number of instructions used is over 1024(my processor is 1701)
so now the problem is how can i load 256 coeffs one time
best regards
shanchanyue
The Safeload mechanism only supports 5 coefficients at a time, so that means you can't update 256 coeffs in the span of a single frame. So, there are two options:
1. Mute the core and do a block write of 256 coeffs, then un-mute the core.
2. Divide the write into 4- or 5-address chunks and write them one frame at a time.
256 / 4 = 64, so...
Make a for loop with 64 loops; 1 loop per audio frame.
Write 4 coefficients (using Safeload) per frame.
This operation will take 1.3 ms to complete.
The downside of option 2 is that for those 1.3 ms, you filter may be unstable and produce unwanted audio artifacts.
Hi BrettG:
Thank you very much for your Re, and I know how to work out it by the two options now.
but I have a new problem, I can just design 67 taps and if I add one tap complile will be failed when i design the schematic,
the output error is showed in output.png, the project is 2iir.dspproj.
best regards
shanchanyue
Hi shanchanyue:
Can you please explan what type of filter you are trying to update. If your filter is an FIR filter, uploading 5 coefficients at a time will not make your filter unstable. If however your filter is an IIR filter, then most likely you can factor the numerator and denominator and download biquads in groups of 5 coefiicients. Doing so will guarantee stability.
My understanding is that your filter is an IIR filter (based on the subject of this thead). Please factorize the filter by calculating all roots so that they can fit in independent biquad sections.
Can you post your project. I'm curious what you are tying to accomplish.
Best regards
Miguel
hi Miguel:
I'm so sorry for late reply,
The type of filter is IIR, it is a FIR-like filter, its structure is as shown in Fig 1 (b) ,and it is a evolution from fig 1(a ) ,
The D(Z) in fig 1(a ) is shown in fig 2.
I just design a filter like Fig 1 (b), my project is 2iir.dspproj, I used 66 "Gen Filter", and link project is ok ,but if i add a "Gen Filter" more in the project it will be failed.
best regards
shanchenyue
Hi shanchenyue,
Your project actually exceeded a limitation we had placed on the compiler, which limited the number of feedback paths allowed in a project. Nobody has ever exceeded this number before, so we were surprised to see the error! We have increased the limit, so this problem should go away in the next beta release, which should be available for download in a few weeks.
Please log in to reply.