資源簡介
仿真模擬電臺信號。對一段音頻信號(鳥叫聲)進行調制,通過高斯信道后解調,恢復出原音頻信號。涉及到的調制方式有AM、DSB、SSB、FM
代碼片段和文件信息
close?all;
clc;
%%?結論:頻率顛倒的問題出在采樣率!!!!
%?Matlab自帶音頻,例如:chrip、train,是以Fs?=?8192Hz采樣得到的,其信號總時間為T?=?N?/?Fs
%?采樣時間點為t?=?(0:N-1)/Fs,如果用載波對信號直接調制,需要注意以下事項:
%?1、如果不重新采樣,需要使得載波頻率fc?%?2、如果想用更高頻率的載波,必須提高音頻信號的采樣率。假設新的采樣率為Fs1,不能單純令t?=?(0:N-1)/Fs1,
%?就認為提高了采樣率。我們還需要在音頻時長不變的情況下,對音頻信號進行插值,以模擬采樣率的提高(會產生新的高頻分量)
%%?音頻信號
load?chirp;
%?y:音頻信號,Fs:對音頻信號的采樣頻率8192
y?=?y‘;
length(y);
%%?參數
fc?=?20e3;
Fst?=?4?*?fc;???????????????%?對載波的采樣頻率
y?=?resample(yFstFs);?????%?對音頻信號進行再采樣
Nt?=?length(y);
tt?=?(0:Nt-1)?/?Fst;
%%?調制
disp(‘-----調制-----‘);
tic;
mode?=?“fm“;
if?mode?==?“am“
????yi?=?(0.02?+?y)?.*?cos(2?*?pi?*?fc?*?tt);
elseif?mode?==?“ssb“
????yi?=?0.5?*?y?.*?cos(2?*?pi?*?fc?*?tt)?-?0.5?*?imag(hilbert(y))?.*?sin(2?*?pi?*?fc?*?tt);
elseif?mode?==?“dsb“
????yi?=?y?.*?cos(2?*?pi?*?fc?*?tt);
elseif?mode?==?“fm“
????%?有時候,繪圖觀察調頻信號,發現其幅度并非恒定
????%?原因:1、信號頻率過高(Kf過大),采樣率過低,導致繪圖時出現了近似
????%?2、Kf過小,信號有一部分特征調制到包絡上
????
????%?kf設置過大,下面按照帶寬計算公式,合理計算kf
????%?dfm?=?kf?*?max(abs(y))?/?(2?*?pi)
????%?B?=?2?*?(dfm?/?Fmax?+?1)?*?F?=?2?*?(dfm?+?Fmax)
????%?應滿足B?/?2?????
????Fmax?=?4800;???????????%?chirp信號的最高頻率大概是5000HzFmax對應音頻信號最高頻率
????Bfm?=?min(2?*?fcFst?-?2?*?fc);
????Bfm?=?Bfm?*?0.9;???????%?留下一定的帶寬余量
????dfm?=?Bfm?/?2?-?Fmax;??%?dfm表示由音頻信號調頻產生的最大頻偏
????kf?=?2?*?pi?*?dfm?/?max(abs(y));
????phi?=?cumsum(y)?/?Fst;
????yi?=?cos(2?*?pi?*?fc?*?tt?+?kf?*?phi);
else
????error(‘No?such?mode...‘);
end
toc;
%%?信道
disp(‘-----信道-----‘);
snr?=?40;
out?=?awgn(yisnr‘measured‘);
%%?濾波、解調
%?電臺信號仿真需不需要解調呢?
%?假設接收機的采樣頻率為Fsr。
%?若接收機采樣頻率Fsr?>?Fs1,仿真時需要插值
%?若接收機采樣頻率Fsr?disp(‘-----解調-----‘);
tic;
Fsr?=?1.2?*?Fst;????????????????????????????%?接收機采樣頻率
- 上一篇:matlab 跳頻信號分析和仿真
- 下一篇:Mallat算法
評論
共有 條評論