请教如何扩大功率谱分析范围的问题程序如下:clear all;close all;clcRsym = 23400; % 符号速率frameLength = 1000; %每帧符号数M = 16; % 调制阶数% 创建 16-QAM 调制器.hMod = modem.qammod('M&
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/28 10:24:15
请教如何扩大功率谱分析范围的问题程序如下:clear all;close all;clcRsym = 23400; % 符号速率frameLength = 1000; %每帧符号数M = 16; % 调制阶数% 创建 16-QAM 调制器.hMod = modem.qammod('M&
请教如何扩大功率谱分析范围的问题
程序如下:
clear all;
close all;
clc
Rsym = 23400; % 符号速率
frameLength = 1000; %每帧符号数
M = 16; % 调制阶数
% 创建 16-QAM 调制器.
hMod = modem.qammod('M',M);
% 生成随机符号
b = randi([0 hMod.M-1],frameLength,1);
% 调制数据
txSym = modulate(hMod,b)';
%过采样频率
nSamps = 8;
Fs = Rsym * nSamps;
nSym = 8; % 滤波器长度
beta = 0.2; % 滚降因子
filterSpec = fdesign.pulseshaping(nSamps,'Square root raised cosine',...
'Nsym,Beta',nSym,beta);
hXmtFlt = design(filterSpec);
x = filter(hXmtFlt,upsample(txSym,nSamps));
%计算功率谱
figure;
pwelch(x,hamming(512),[],[],Fs,'centered')
可以看出,能够分析-80kHz到80kHz的频谱,假如我想分析-200kHz到200kHz的频谱,
我试了一下你说方法,通过增加数据点,这样好像是不行的,又假如符号速率不变,那么该怎么办?
请教如何扩大功率谱分析范围的问题程序如下:clear all;close all;clcRsym = 23400; % 符号速率frameLength = 1000; %每帧符号数M = 16; % 调制阶数% 创建 16-QAM 调制器.hMod = modem.qammod('M&
保持采样频率不变,则最大分析频率不变,增加采样点数一倍则频率分辨率细化为原来的1/2.
想增大一倍频率分析范围,需要保持频率分辨率不变,增大一倍采样点数,也就是要求采样点数增大一倍的同时,采样频率也增大一倍就可以了.原回答中关于补零一段的答复有错误:
“补零的做法通常是补在实际采样段的开始之前或结束之后,但这是假的提高频率分析上限的细化方法,增加实际采样点数才是真细化.试想你实际采一个点补零15个点甚至更多的情况,你就清楚这并不能得到反映实际过程的结果了.你的补零方法是一种假的提高分辨率的方法.”
更正如下:“补零的做法通常是补在实际采样段的开始之前或结束之后,但这是假的提高频率分辨率的细化方法,增加实际采样点数才是真细化.试想你实际采一个点补零15个点甚至更多的情况,你就清楚这并不能得到反映实际过程的结果了.你的补零方法相当于靠补零代替采样提高采样率,是一种假的提高频率分析上限的方法.”
谢谢提醒使我有发现和更正错误的机会.