基于MATLAB的单边带电台仿真详解.ppt

单边带电台仿真 设计要求 1:完成系统模型设计,包括发送模块,信道模块,接收模块 2:三种本地载波分别作相干解调。 3:比较三种结果,分析本地载波频率误差对解调话音质量的影响。 设计参数 1)输入话音信号,采样频率8000Hz,话音预滤波是 [300,3400]Hz的带通滤波器; 2)载波频率:10kHz;调制输出上边带; 3)信道:带限高斯噪声信道,[10,13.5]kHz;加入的噪声可调; 4)接收机:想干解调;本地载波分别为:9.8KHz,9.8KHz,9.8KHz; 5)解调滤波器;[300,3400]Hz的带通滤波器。 发送模块 发送模块需要完成: 1,采样频率8000Hz,预滤波[300,3400] 2,10KHz单边带调制输出上边带 发送模块 %FileName:ForSSB.m clc; clear all; %功能,采样点数40000,采样率为8000 %jilu = wavrecord(5*8000, 8000, double); %wavwrite(jilu, GDGvoice8000.wav); [wav, fs] = wavread(GDGvoice8000.wav); %计算声音时间长度 t_end = 1/fs * length(wav); %仿真系统采样时间点 Fs = 50000; t = 1/Fs:1/Fs:t_end; %设计300~3400hz的带通滤波器 [fenzi, fenmu] = butter(3, [300 3400]/(fs/2)); %对音频信号进行滤波 wav = filter(fenzi, fenmu, wav); %输出滤波后的声音 wavwrite(wav, LVBO_OUT.wav); %利用插值函数将音频的采样率提升为50khz wav = interp1([1/fs:1/fs:t_end], wav, t, spline); %音频信号的希尔伯特变换 wav_hilbert = imag(hilbert(wav)); %载波频率 fc = 10000; %单边带调制 SSB_OUT = wav.*cos(2*pi*fc*t) - wav_hilbert.*sin(2*pi*fc*t); %输出波形 figure(1); 信道模块 %FileName:ForSNB.m %功能;计算实际信噪比 %clear; [in, Fs] = wavread(SSB_OUT.wav); %设定信噪比为20时的新到输出 SNR_db = 20; out = ChanelSimulink(in, SNR_db); wavwrite(out, Fs, Chanel_OUT.wav); %FileName:ChanelSimulink.m function out = ChanelSimulink(in, SNR_db) % SNR_db 设定信噪比 % in 输入信号序列 % out 信道输出序列 % 系统采样率 Fs = 50000; Power_of_in = var(in); Power_of_noise = Power_of_in/(10.^(SNR_db/10)); % 信道带宽 bandwidth = 13500 - 10000; % 噪声功率谱密度值 W/Hz NO = Power_of_noise/bandwidth; Gause_noise = sqrt(NO*Fs/2) .* randn(size(in)); % 噪声通道 10~13.5kHz [num, den] = butter(4, [10000 13500]/(Fs/2)); signal_of_filter_out = filter(num, den, in); noise_of_filter_out = filter(num, den, Gause_noise); SNR_dB = 10*log10(var(signal_of_filter_out)/var(noise_of_filter_out)); % 测量得出信噪比 % 信道输出 out = signal_of_filter_out + noise_of_filter_out; SNR_dB 接收模块 % FileName:Forjietiao 9.8K.m % clear; Fs=50000; % 读入信道输出信号数据 [recvsignal, Fs] = wavread(Chanel_OUT.wav); t = (1/Fs:1/Fs:length(recvsignal)/Fs); % 本地载波频率 fc_local1 = 10000 -200; % fc_local = 10000 -100; % fc_local = 10000;

文档评论(0)

1亿VIP精品文档

相关文档