Effacer les filtres
Effacer les filtres

Designing a Digital filter from given Transfer function ? Coefficient Calculation ?

4 vues (au cours des 30 derniers jours)
shyam
shyam le 25 Juil 2013
Commenté : karrar mosawe le 18 Mar 2015
First of all i am not a expert in signal processing i just know the A B C
my question is how to design a filter for my speech codec where i capture speech and compress and tx it over air
so in this event my codec hardware from Texas Instruments TLV320AIC3204 gives me a flexibility to program the filters present in it by the given transfer function
N0 + (N1 * z^-1)
H(z)=---------------------
2^23 - (D1 * z^-1)
Above is an IIR Filter Example
my job is to find out the filter coefficients NO,N1,D1 and fill them up to the codec chip so that i can realize it on an hardware for that i want to take the help of matlab
any way i have some other transfer functions also waiting like biquad filters with a transfer function as below using which i can cascade a LPF and HPF to form a BPF using Biquad blocks
Transfer Function of Each biquad:
N0 + (2* N1 * z^-1 ) + (N2 * z^-2)
H(z)=----------------------------------------
(2^23) - (D1 * z^-1) - (D2 * z^-2)
how to realise this filter in matlab now Help me please

Réponses (3)

shyam
shyam le 26 Juil 2013
Any One There PLZ Reply me

Dimka
Dimka le 26 Juil 2013
That is, You need to calculate filter coefficients? And we are given?
  1 commentaire
shyam
shyam le 26 Juil 2013
yes i just need to calculate the filter coefficients by given sampling frequency 8000Hz BPF:(200-3500Hz)

Connectez-vous pour commenter.


Dimka
Dimka le 26 Juil 2013
Modifié(e) : Dimka le 26 Juil 2013
Maybe it would be you can help...
clc; clear; close all;
fs = 8e3;
fc = [200 3.5e3];
order = 2;
% b - nominator of complex transfer function; a - denominator;
[b, a] = butter(order, 2*fc/fs, 'bandpass');
disp([{'Numerator'} num2str(b); {'Denominator'} num2str(a)])
%%check
f = fs/2*linspace(0, 1, 8192);
h = freqz(b,a, 8192);
K_dB = 20*log10(abs(h));
plot(f/1e3, K_dB, fc/1e3, [-3 -3], 'or', 'LineWidth', 2); grid on;
xlabel('frequency, kHz'); ylabel('|H|, dB')
axis([min(f/1e3) max(f/1e3) -60 10])
  3 commentaires
Dimka
Dimka le 26 Juil 2013
Modifié(e) : Dimka le 26 Juil 2013
That is, You need calculate the coefficients just for your transfer function?
karrar mosawe
karrar mosawe le 18 Mar 2015
thank for this example now i can do this easy

Connectez-vous pour commenter.

Catégories

En savoir plus sur Applications dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by