How do you calculate this transfer function?

Dear friends I'm trying to make a filter for sound processing in matlab The transfer function is
H(e^(jω))=αjω.*exp(-βjω);
I have written this in matlab but seems not to work properly
w=0:pi/(2*Fs):pi; H=sqrt(-1)*w*a.*exp(-sqrt(-1)*w*b);
Do you think it's right?

回答 (3 件)

Honglei Chen
Honglei Chen 2014 年 9 月 12 日

0 投票

You can use 1i for sqrt(-1) but mainly you need to set your w correctly, right now your step size is pi/(2*Fs). It could work but I don't know if that's what you want. Normally people decides the number of samples between 0 and pi as N and then the step size is pi/N, or pi/(N-1).
Alexandros Roniotis
Alexandros Roniotis 2014 年 9 月 12 日

0 投票

Is there any way to write it as H(z)?
mohammad
mohammad 2014 年 9 月 12 日
編集済み: mohammad 2014 年 9 月 12 日

0 投票

first use approximation function instead of exponential: e^x = (1+(x/N))^N second instead of 'jω' use 's' and use 'tf' command. so you have (for N=1): H=αjω.*exp(-βjω)=αjω/(1+(βjω)) now you have: H=(α*s)/(1+β*s)
num=[α,0];
den=[β,1];
H=tf(num,den);
for plotting bode diagram use 'bodeplot'.

1 件のコメント

Alexandros Roniotis
Alexandros Roniotis 2014 年 9 月 16 日
編集済み: Alexandros Roniotis 2014 年 9 月 16 日
Yes, but I think simplification of N=1 is too erroneous. Why did you choose N? Thank you for help

サインインしてコメントする。

カテゴリ

質問済み:

2014 年 9 月 12 日

編集済み:

2014 年 9 月 16 日

Community Treasure Hunt

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

Start Hunting!

Translated by