24小时热门版块排行榜    

查看: 770  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

yyyy-

铜虫 (小有名气)

[求助] 跪求牛人帮我解释下下面的程序 已有2人参与

function [f, amplitude, pha]= transferfunction(fs, x, y)
%fs---sample frequency
%x---input array
%y---output array

if nargin < 2,
error ('input arguments are not enough.');
end

[row_x,column_x]=size(x);
[row_y,column_y]=size(y);

if row_x ~= row_y
    error ('the length of x and y must be same.');
end

NFFT=length(x);
Pxx=fft(x);
Pyy=fft(y);
%Syy = Pyy((1:floor(NFFT/2)+1)).*conj(Pyy(1:floor(NFFT/2)+1)); %yigao
Sxy = Pxx((1:floor(NFFT/2)+1)).*conj(Pyy(1:floor(NFFT/2)+1));  
Sxx = Pxx(1:floor(NFFT/2)+1).*conj(Pxx(1:floor(NFFT/2)+1));
Hxy = Sxy./Sxx;

%Gxx = 2*Sxx; %yigao
%Gyy = 2*Syy; %yigao
%Gxy = 2*Sxy; %yigao

%rr = (abs(Gxy).*abs(Gxy))./(Gxx.*Gyy);

f = fs/2*linspace(0,1,length(x)/2+1);
amplitude = 20*log10(abs(Hxy)); %幅值,分贝
pha = phase(Hxy)*180/pi;  %相位,度
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

以积极的态度对待人生,任何时刻我都要充满自信并微笑!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

蝶恋花儿

金虫 (小有名气)

引用回帖:
3楼: Originally posted by yyyy- at 2015-03-31 21:26:42
恩恩,我做的就是这个。这只是一个Funcation函数,还要编写一个函数来调用它。目的是利用功率谱的方法实现传递函数的伯德图显示。关键是我看不懂,不会编。...

你都知道了利用功率谱来实现传递函数的伯德图显示,还看不懂?要不要这样任性啊。。。

» 本帖已获得的红花(最新10朵)

静待破茧化蝶。
4楼2015-04-01 09:01:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

蝶恋花儿

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
快速傅里叶变换,再生成伯德图瞎说的
静待破茧化蝶。
2楼2015-03-31 21:04:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yyyy-

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by 蝶恋花儿 at 2015-03-31 21:04:42
快速傅里叶变换,再生成伯德图瞎说的

恩恩,我做的就是这个。这只是一个Funcation函数,还要编写一个函数来调用它。目的是利用功率谱的方法实现传递函数的伯德图显示。关键是我看不懂,不会编。
以积极的态度对待人生,任何时刻我都要充满自信并微笑!
3楼2015-03-31 21:26:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

terrynew

铁杆木虫 (小有名气)

自定义头衔

【答案】应助回帖

感谢参与,应助指数 +1
不就几个变量,一个函数,几个if循环
要替别人着想,但为自己而活。
5楼2015-04-01 11:31:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见