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毫秒