function modulation_performance_comparing
%不同调制方法的调制性能比较,调制方法有
%AM—标准幅度调制,包络检波解调;相干解调类似于DSB,这里不考虑
%DSB—双边带调制
%SSB—单边带调制
%VSB—残留边带调制
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%信号源
%%%%%基波信号
f0 = 1;%基波信号频率,单位:Hz
T0 = 5;%信号时域截断长度——>为了减小截断效应对频谱的影响,最少截断长度为多少?
dt = 0.003;%时域采样间隔
Fs = 1/dt;%时域采样频率,即频域延拓周期,单位:Hz
t = 0:dt:T0;%时间序列,单位:s
m_t = cos(2*pi*f0*t);%基波信号采样序列
df = 0.003;%频域采样间隔
[M_f,m_t,df1,f]=T2F(m_t,dt,df,Fs);%基波信号频谱
%%%%%载波信号
A = 2;%载波信号幅度
fc = 10;%载波信号频率,单位:Hz
m2_t = A*cos(2*pi*fc*t);%载波信号采样序列
[M2_f,m2_t,df1,f]=T2F(m2_t,dt,df,Fs);%载波信号频谱
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%信号调制
%%%%%AM信号调制
S_AM_t = (m_t(1:length(t))+A/2).*m2_t(1:length(t));%AM已调信号
[S_AM_f,S_AM_t,df1,f]=T2F(S_AM_t,dt,df,Fs);%AM已调信号频谱
%%%%%DSB信号调制
S_DSB_t = m_t(1:length(t)).*m2_t(1:length(t));%DSB已调信号
[S_DSB_f,S_DSB_t,df1,f]=T2F(S_DSB_t,dt,df,Fs);%DSB已调信号频谱
%%%%%SSB信号调制
S_SSB_t = m_t(1:length(t)).*m2_t(1:length(t))...
-imag(hilbert(m_t(1:length(t)))).*imag(hilbert(m2_t(1:length(t))));%SSB已调信号
[S_SSB_f,S_SSB_t,df1,f]=T2F(S_SSB_t,dt,df,Fs);%SSB已调信号频谱
%%%%%VSB信号调制
fa = 0.15*fc;%VSB调制滤波器特定频率参数
[H_VSB_f ,f]=vsb_lpf(length(S_DSB_t),fc,fa,df1,Fs,1);%VSB调制滤波器频率响应函数
S_VSB_f = H_VSB_f.*S_DSB_f;%VSB已调信号频谱
[S_VSB_t] = F2T(S_VSB_f,Fs);%VSB已调信号波形
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%加入信道
signal_AM_power = power_x(S_AM_t(1:length(t)));%AM信号功率
signal_DSB_power = power_x(S_DSB_t(1:length(t)));%DSB信号功率
signal_SSB_power = power_x(S_SSB_t(1:length(t)));%SSB信号功率
signal_VSB_power = power_x(S_VSB_t(1:length(t)));%VSB信号功率
%功率归一化
S_AM_t = S_AM_t(1:length(t))/signal_AM_power;
[S_AM_f,S_AM_t,df1,f]=T2F(S_AM_t,dt,df,Fs);
S_DSB_t = S_DSB_t(1:length(t))/signal_DSB_power;
[S_DSB_f,S_DSB_t,df1,f]=T2F(S_DSB_t,dt,df,Fs);
S_SSB_t = S_SSB_t(1:length(t))/signal_SSB_power;
[S_SSB_f,S_SSB_t,df1,f]=T2F(S_SSB_t,dt,df,Fs);
S_VSB_t = S_VSB_t(1:length(t))/signal_VSB_power;
[S_VSB_f,S_VSB_t,df1,f]=T2F(S_VSB_t,dt,df,Fs);
%%%%%
% M = 100;
s = randn(1,length(t))+i*randn(1,length(t));%单位噪声序列
% s = sum(s)/M;
N = 100;
SNR_AM_inp = zeros(1,N);
SNR_AM_out = zeros(1,N);
SNR_DSB_inp = zeros(1,N);
SNR_DSB_out = zeros(1,N);
SNR_SSB_inp = zeros(1,N);
SNR_SSB_out = zeros(1,N);
SNR_VSB_inp = zeros(1,N);
SNR_VSB_out = zeros(1,N);
for snr_lin = 1:N
B = 2.4;%带通滤波器带宽
%%%%%噪声功率
noise_AM_power = (signal_AM_power*Fs)/(snr_lin*B);
noise_DSB_power = (signal_DSB_power*Fs)/(snr_lin*B);
noise_VSB_power = (signal_VSB_power*Fs)/(snr_lin*B);
B = 1.2;
noise_SSB_power = (signal_SSB_power*Fs)/(snr_lin*B);
%%%%%产生噪声
noise_AM_t = sqrt(noise_AM_power)*s;
noise_DSB_t = sqrt(noise_DSB_power)*s;
noise_VSB_t = sqrt(noise_VSB_power)*s;
noise_SSB_t = sqrt(noise_SSB_power)*s;
%%%%%噪声频谱
[noise_AM_f,noise_AM_t,df1,f] = T2F(noise_AM_t,dt,df,Fs);
[noise_DSB_f,noise_DSB_t,df1,f] = T2F(noise_DSB_t,dt,df,Fs);
[noise_SSB_f,noise_SSB_t,df1,f] = T2F(noise_SSB_t,dt,df,Fs);
[noise_VSB_f,noise_VSB_t,df1,f] = T2F(noise_VSB_t,dt,df,Fs);
%%%%%%%%%AM
B = 2.4;
f_start = fc-B/2;%起始频率
f_cutoff = fc+B/2;%截至频率
[H_BPF_f,f] = bp_f(length(S_AM_t),f_start,f_cutoff,df1,Fs,1);
[H_LPF_f,f] = lp_f(length(S_AM_t),B/2,df1,Fs,1);%理想低通滤波器频谱
%%%%%输入信噪比
noise_1_AM_f = H_BPF_f.*noise_AM_f;%经过带通滤波
[noise_1_AM_t] = F2T(noise_1_AM_f,Fs);
noise_AM_inp_power = power_x(abs(noise_1_AM_t(1:length(t))));%带通输出噪声功率
signal_AM_inp_power = power_x(S_AM_t(1:length(t)));
%%%%%输出信噪比
S_1_AM_t = S_AM_t(1:length(t))+noise_1_AM_t(1:length(t));%实际输入信号
S_2_AM_t = abs(S_1_AM_t)-mean(abs(S_1_AM_t));%包络输出信号同时隔直
[S_2_AM_f,S_2_AM_t,df1,f] = T2F(S_2_AM_t,dt,df,Fs);
S_AM_out_f = H_LPF_f.*S_2_AM_f;%低通滤波输出
S_AM_out_f = fftshift(abs(S_AM_out_f));
signal_AM_out_power = sum(S_AM_out_f(find(f>0.8 & f<1.2)));
noise_AM_out_power = sum(S_AM_out_f)-signal_AM_out_power;
%%%%%
SNR_AM_inp(snr_lin) = signal_AM_inp_power/noise_AM_inp_power;
SNR_AM_out(snr_lin) = signal_AM_out_power/noise_AM_out_power;
%%%%%%%%%DSB
[noise_DSB_inp_power,noise_DSB_out_power] = coherent_demodulation_power_transf...
(t,noise_DSB_f,m2_t,df,dt,H_BPF_f,H_LPF_f,Fs);
[signal_DSB_inp_power,signal_DSB_out_power] = coherent_demodulation_power_transf...
(t,S_DSB_f,m2_t,df,dt,H_BPF_f,H_LPF_f,Fs);
SNR_DSB_inp(snr_lin) = signal_DSB_inp_power/noise_DSB_inp_power;
SNR_DSB_out(snr_lin) = signal_DSB_out_power/noise_DSB_out_power;
%%%%%%%%%VSB
[noise_VSB_inp_power,noise_VSB_out_power] = coherent_demodulation_power_transf...
(t,noise_VSB_f,m2_t,df,dt,H_BPF_f,H_LPF_f,Fs);
[signal_VSB_inp_power,signal_VSB_out_power] = coherent_demodulation_power_transf...
(t,S_VSB_f,m2_t,df,dt,H_BPF_f,H_LPF_f,Fs);
SNR_VSB_inp(snr_lin) = signal_VSB_inp_power/noise_VSB_inp_power;
SNR_VSB_out(snr_lin) = signal_VSB_out_power/noise_VSB_out_power;
%%%%%%%%%SSB
B = 1.2;
f_start = fc;%起始频率
f_cutoff = fc+B;%截至频率
[H_BPF_f,f]=bp_f(length(S_DSB_t),f_start,f_cutoff,df1,Fs,1);
[H_LPF_f,f] = lp_f(length(S_DSB_t),B,df1,Fs,1);%理想低通滤波器频谱
[noise_SSB_inp_power,noise_SSB_out_power] = coherent_demodulation_power_transf...
(t,noise_SSB_f,m2_t,df,dt,H_BPF_f,H_LPF_f,Fs);
[signal_SSB_inp_power,signal_SSB_out_power] = coherent_demodulation_power_transf...
(t,S_SSB_f,m2_t,df,dt,H_BPF_f,H_LPF_f,Fs);
SNR_SSB_inp(snr_lin) = signal_SSB_inp_power/noise_SSB_inp_power;
SNR_SSB_out(snr_lin) = signal_SSB_out_power/noise_SSB_out_power;
end
plot(10*log10(SNR_DSB_inp),10*log10(SNR_DSB_out),'r')
hold on
plot(10*log10(SNR_VSB_inp),10*log10(SNR_VSB_out),'b')
hold on
plot(10*log10(SNR_SSB_inp),10*log10(SNR_SSB_out),'g')
hold on
plot(10*log10(SNR_AM_inp),10*log10(SNR_AM_out),'k')
xlabel('输入信噪比/dB')
ylabel('输出信噪比/dB')
title('不同调制方法的抗噪性能比较')
没有合适的资源?快使用搜索试试~ 我知道了~
VSB调制仿真及其抗噪声性能分析
共15个文件
m:13个
wav:2个
需积分: 12 21 下载量 159 浏览量
2018-01-23
17:38:24
上传
评论 2
收藏 79KB RAR 举报
温馨提示
VSB调制及解调仿真(包含三角函数及语音信号测试) 包括各模块代码讲解,时域波形,频谱分析以及信噪比增益曲线
资源推荐
资源详情
资源评论
收起资源包目录
VSB_simulation.rar (15个子文件)
VSB_simulation
lp_f.m 219B
signalband.m 96B
power_x.m 48B
AM_simulation.m 4KB
fftseq.m 185B
coherent_demodulation_power_transf.m 665B
F2T.m 42B
VSB_simulation.m 6KB
bp_f.m 292B
VSB.m 4KB
T2F.m 107B
output.wav 125KB
modulation_performance_comparing.m 6KB
sound.wav 125KB
vsb_lpf.m 340B
共 15 条
- 1
资源评论
xswbsjgs
- 粉丝: 2
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功