Matlab 版 (精华区)
发信人: hahn (有奇~~Not Over But another Start...), 信区: Matlab
标 题: [合集] 大虾们帮帮忙!!!
发信站: 哈工大紫丁香 (Wed Jan 24 00:54:09 2007), 站内
────────────────────────────────────────
bbchg (bbchg) 于 (Mon Aug 14 09:28:21 2006) 说道:
在看别人的论文时,他们做FFT
最终总是能把频谱定在零0 dB处,而我仿真是一般做不到
不知是什么原因???
两个程序如下,高手帮忙改改,把最大值定在零0 dB处。
谢谢了!
程序一:
clear all;
T=2*pi/4096;
t=[0:T:2*pi-T]; % 4096个
x=cos(t);
q=quantizer('fix',[32,31]); %转化成归一化的定点数
x1=num2hex(q,x);
x=hex2num(q,x1);
n=[1:4096/16];
z=x(16*n);
w=ones(1,4096);
for i=1:256
y(16*(i-1)+1:16*i)=w(16*(i-1)+1:16*i).*z(i);
end;
N=length(y); % 采样数据长度
y_hanning=y.*hanning(N)';
M=2^12;
y_hanning=[y_hanning,zeros(1,M-N)];
r=fft(y_hanning,M)/M;
r=fftshift(r);
f=linspace(0,1,M);
figure, % Q路频域幅度波形
plot(f,20*log10(abs(r)));
% title('归一化频率/dB')
xlabel('归一化频率');
ylabel('dB');
程序二:
clear all;
x=[1,0,-1,0];
%N=4096/4;
y=repmat(x,1,4096/4);
N=length(y); % 采样数据长度
y_hanning=y.*hanning(N)';
% y_hanning=y_hanning';
M=2^12;
y_hanning=[y_hanning,zeros(1,M-N)];
r=fft(y_hanning,M)/M; %/4096;
f=linspace(0,1,M/2);
figure, % Q路频域幅度波形
plot(f,20*log10(abs(r(1:M/2))));
%title('归一化频率/dB');
xlabel('归一化频率');
ylabel('dB');
────────────────────────────────────────
bbchg (bbchg) 于 (Mon Aug 14 09:29:03 2006) 说道:
自己顶一个!
【 在 bbchg (bbchg) 的大作中提到: 】
: 在看别人的论文时,他们做FFT
: 最终总是能把频谱定在零0 dB处,而我仿真是一般做不到
: 不知是什么原因???
: 两个程序如下,高手帮忙改改,把最大值定在零0 dB处。
: 谢谢了!
: 程序一:
: clear all;
: T=2*pi/4096;
: ...................
────────────────────────────────────────
zjliu (秋天的萝卜) 于 (Mon Aug 14 09:58:23 2006) 说道:
仔细说明一下,这样的程序不容易发现问题
【 在 bbchg (bbchg) 的大作中提到: 】
: 自己顶一个!
────────────────────────────────────────
bbchg (bbchg) 于 (Mon Aug 14 16:43:11 2006) 说道:
程序本身没有问题
想问一下,就是许多论文中的快速傅立叶变换fft是如何把
最终的那些值的最大值定在 0dB 处的?
【 在 zjliu (秋天的萝卜) 的大作中提到: 】
: 仔细说明一下,这样的程序不容易发现问题
────────────────────────────────────────
zjliu (秋天的萝卜) 于 (Mon Aug 14 17:23:09 2006) 说道:
我想应该是理论值,而不是人为的
【 在 bbchg (bbchg) 的大作中提到: 】
: 程序本身没有问题
: 想问一下,就是许多论文中的快速傅立叶变换fft是如何把
: 最终的那些值的最大值定在 0dB 处的?
: ...................
────────────────────────────────────────
hahn (有奇) 于 (Mon Aug 14 19:02:38 2006) 说道:
幅值在转化成db前也要进行规一化...
那样最大值就是0db了...
【 在 bbchg (bbchg) 的大作中提到: 】
: 在看别人的论文时,他们做FFT
: 最终总是能把频谱定在零0 dB处,而我仿真是一般做不到
: 不知是什么原因???
: ...................
────────────────────────────────────────
bbchg (bbchg) 于 (Tue Aug 15 09:19:16 2006) 说道:
请问做归一化,直接把所有数除以它们当中最大的就可以了吗?
谢谢!
【 在 hahn (有奇) 的大作中提到: 】
: 幅值在转化成db前也要进行规一化...
: 那样最大值就是0db了...
────────────────────────────────────────
hahn (有奇) 于 (Tue Aug 15 09:20:25 2006) 说道:
可以这么讲. 确保最大值为0db
【 在 bbchg (bbchg) 的大作中提到: 】
: 请问做归一化,直接把所有数除以它们当中最大的就可以了吗?
: 谢谢!
────────────────────────────────────────
bbchg (bbchg) 于 (Tue Aug 15 14:53:01 2006) 说道:
谢谢了!
【 在 hahn (有奇) 的大作中提到: 】
: 可以这么讲. 确保最大值为0db
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.260毫秒