Zero order hold filter using filter()

I am trying to filter an audio signal using a zero order hold filter. Using the code below I get an error saying denominator filter coefficient must be non-zero. My question is am I using the correct inputs for freqz() and filter() to get my desired signal out?
Wn = [0.7];
L = 4;
n = 80;
y = audioread('voice_samp_8k.wav');
yup = kron(L,y); %upsample signal
[H,w]=freqz(sin(Wn.*L.*.5).*exp(-j.*Wn.*L.*.5), sin(Wn.*.5),2^18); %freqz of fourier transform of zero order hold
yfilt = filter(w, 1, yup);
plot(y,'r');
hold on
plot(yfilt,'b')

回答 (1 件)

Kushagr Gupta
Kushagr Gupta 2016 年 11 月 9 日
編集済み: Kushagr Gupta 2016 年 11 月 9 日

0 投票

I ran the code provided and did not receive any error and got a plot at the end.
Provide us with what is the error message that you receive along with the MATLAB version and OS being used as that might help us to figure out what might be going wrong!

カテゴリ

ヘルプ センター および File ExchangeAudio Processing Algorithm Design についてさらに検索

質問済み:

2016 年 11 月 5 日

編集済み:

2016 年 11 月 9 日

Community Treasure Hunt

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

Start Hunting!

Translated by