如何用Matlab产生宽频时域信号 5C

使用matlab产生频率为0--50KHz的宽频时域信号,是先产生频域信号再通过IFFT变为时域信号吗?最好能给出代码或思路。

1个回答

拷到你的Matlab里,名字就叫OFDM_Demo好了。不光有你上面的,还有星座图,等等。
clear all;
close all;
carrier_count=200;%子载波数
symbols_per_carrier=12;%每子载波含符号数
bits_per_symbol=4;%每符号含比特数,16QAM调制
IFFT_bin_length=512;%FFT点数
PrefixRatio=1/4;%保护间隔与OFDM数据的比例 1/6~1/4
GI=PrefixRatio*IFFT_bin_length ;%每一个OFDM符号添加的循环前缀长度为1/4*IFFT_bin_length 即保护间隔长度为128
beta=1/32;%窗函数滚降系数
GIP=beta*(IFFT_bin_length+GI);%循环后缀的长度20
SNR=15; %信噪比dB
%==================================================
%================信号产生===================================
baseband_out_length = carrier_count * symbols_per_carrier * bits_per_symbol;%所输入的比特数目
carriers = (1:carrier_count) + (floor(IFFT_bin_length/4) - floor(carrier_count/2));%共轭对称子载波映射 复数数据对应的IFFT点坐标
conjugate_carriers = IFFT_bin_length - carriers + 2;%共轭对称子载波映射 共轭复数对应的IFFT点坐标
rand( 'state',0);
baseband_out=round(rand(1,baseband_out_length));%输出待调制的二进制比特流
%==============16QAM调制====================================
complex_carrier_matrix=qam16(baseband_out);%列向量
complex_carrier_matrix=reshape(complex_carrier_matrix',carrier_count,symbols_per_carrier)';%symbols_per_carrier*carrier_count 矩阵
figure(1);
plot(complex_carrier_matrix,'*r');%16QAM调制后星座图
axis([-4, 4, -4, 4]);
grid on
%=================IFFT===========================
IFFT_modulation=zeros(symbols_per_carrier,IFFT_bin_length);%添0组成IFFT_bin_length IFFT 运算
IFFT_modulation(:,carriers ) = complex_carrier_matrix ;%未添加导频信号 ,子载波映射在此处
IFFT_modulation(:,conjugate_carriers ) = conj(complex_carrier_matrix);%共轭复数映射
%========================================================
figure(2);
stem(0:IFFT_bin_length-1, abs(IFFT_modulation(2,1:IFFT_bin_length)),'b*-')%第一个OFDM符号的频谱
grid on
axis ([0 IFFT_bin_length -0.5 4.5]);
ylabel('Magnitude');
xlabel('IFFT Bin');
title('OFDM Carrier Frequency Magnitude');
figure(3);
plot(0:IFFT_bin_length-1, (180/pi)*angle(IFFT_modulation(2,1:IFFT_bin_length)), 'go')
hold on
stem(0:carriers-1, (180/pi)*angle(IFFT_modulation(2,1:carriers)),'b*-');%第一个OFDM符号的相位
stem(0:conjugate_carriers-1, (180/pi)*angle(IFFT_modulation(2,1:conjugate_carriers)),'b*-');
axis ([0 IFFT_bin_length -200 +200])
grid on
ylabel('Phase (degrees)')
xlabel('IFFT Bin')
title('OFDM Carrier Phase')
%=================================================================
signal_after_IFFT=ifft(IFFT_modulation,IFFT_bin_length,2);%OFDM调制 即IFFT变换
time_wave_matrix =signal_after_IFFT;%时域波形矩阵,行为每载波所含符号数,列ITTF点数,N个子载波映射在其内,每一行即为一个OFDM符号
figure(4);
subplot(3,1,1);
plot(0:IFFT_bin_length-1,time_wave_matrix(2,:));%第一个符号的波形
axis([0, 700, -0.2, 0.2]);
grid on;
ylabel('Amplitude');
xlabel('Time');
title('OFDM Time Signal, One Symbol Period');
%===========================================================
%=====================添加循环前缀与后缀====================================
XX=zeros(symbols_per_carrier,IFFT_bin_length+GI+GIP);
for k=1:symbols_per_carrier;
for i=1:IFFT_bin_length;
XX(k,i+GI)=signal_after_IFFT(k,i);
end
for i=1:GI;
XX(k,i)=signal_after_IFFT(k,i+IFFT_bin_length-GI);%添加循环前缀
end
for j=1:GIP;
XX(k,IFFT_bin_length+GI+j)=signal_after_IFFT(k,j);%添加循环后缀
end
end
time_wave_matrix_cp=XX;%添加了循环前缀与后缀的时域信号矩阵,此时一个OFDM符号长度为IFFT_bin_length+GI+GIP=660
subplot(3,1,2);
plot(0:length(time_wave_matrix_cp)-1,time_wave_matrix_cp(2,:));%第一个符号添加循环前缀后的波形
axis([0, 700, -0.2, 0.2]);
grid on;
ylabel('Amplitude');
xlabel('Time');
title('OFDM Time Signal with CP, One Symbol Period');
%==============OFDM符号加窗==========================================
windowed_time_wave_matrix_cp=zeros(1,IFFT_bin_length+GI+GIP);
for i = 1:symbols_per_carrier
windowed_time_wave_matrix_cp(i,:) = real(time_wave_matrix_cp(i,:)).*rcoswindow(beta,IFFT_bin_length+GI)';%加窗 升余弦窗
end
subplot(3,1,3);
plot(0:IFFT_bin_length-1+GI+GIP,windowed_time_wave_matrix_cp(2,:));%第一个符号的波形
axis([0, 700, -0.2, 0.2]);
grid on;
ylabel('Amplitude');
xlabel('Time');
title('OFDM Time Signal Apply a Window , One Symbol Period');
%========================生成发送信号,并串变换==================================================
windowed_Tx_data=zeros(1,symbols_per_carrier*(IFFT_bin_length+GI)+GIP);
windowed_Tx_data(1:IFFT_bin_length+GI+GIP)=windowed_time_wave_matrix_cp(1,:);
for i = 1:symbols_per_carrier-1 ;
windowed_Tx_data((IFFT_bin_length+GI)*i+1:(IFFT_bin_length+GI)*(i+1)+GIP)=windowed_time_wave_matrix_cp(i+1,:);%并串转换,循环后缀与循环前缀相叠加
end
%=======================================================
Tx_data_withoutwindow =reshape(time_wave_matrix_cp',(symbols_per_carrier)*(IFFT_bin_length+GI+GIP),1)';%没有加窗,只添加循环前缀与后缀的串行信号
Tx_data =reshape(windowed_time_wave_matrix_cp',(symbols_per_carrier)*(IFFT_bin_length+GI+GIP),1)';%加窗后 循环前缀与后缀不叠加 的串行信号
%=================================================================
temp_time1 = (symbols_per_carrier)*(IFFT_bin_length+GI+GIP);%加窗后 循环前缀与后缀不叠加 发送总位数
figure (5)
subplot(2,1,1);
plot(0:temp_time1-1,Tx_data );%循环前缀与后缀不叠加 发送的信号波形
grid on
ylabel('Amplitude (volts)')
xlabel('Time (samples)')
title('OFDM Time Signal')
temp_time2 =symbols_per_carrier*(IFFT_bin_length+GI)+GIP;
subplot(2,1,2);
plot(0:temp_time2-1,windowed_Tx_data);%循环后缀与循环前缀相叠加 发送信号波形
grid on
ylabel('Amplitude (volts)')
xlabel('Time (samples)')
title('OFDM Time Signal')
%=================未加窗发送信号频谱==================================
symbols_per_average = ceil(symbols_per_carrier/5);%符号数的1/5,10行
avg_temp_time = (IFFT_bin_length+GI+GIP)*symbols_per_average;%点数,10行数据,10个符号
averages = floor(temp_time1/avg_temp_time);
average_fft(1:avg_temp_time) = 0;%分成5段
for a = 0:(averages-1)
subset_ofdm = Tx_data_withoutwindow (((a*avg_temp_time)+1):((a+1)*avg_temp_time));%
subset_ofdm_f = abs(fft(subset_ofdm));%将发送信号分段求频谱
average_fft = average_fft + (subset_ofdm_f/averages);%总共的数据分为5段,分段进行FFT,平均相加
end
average_fft_log = 20*log10(average_fft);
figure (6)
subplot(2,1,1);
plot((0:(avg_temp_time-1))/avg_temp_time, average_fft_log)%归一化 0/avg_temp_time : (avg_temp_time-1)/avg_temp_time
hold on
plot(0:1/IFFT_bin_length:1, -35, 'rd')
grid on
axis([0 0.5 -40 max(average_fft_log)])
ylabel('Magnitude (dB)')
xlabel('Normalized Frequency (0.5 = fs/2)')
title('OFDM Signal Spectrum without windowing')
%===============加窗的发送信号频谱=================================
symbols_per_average = ceil(symbols_per_carrier/5);%符号数的1/5,10行
avg_temp_time = (IFFT_bin_length+GI+GIP)*symbols_per_average;%点数,10行数据,10个符号
averages = floor(temp_time1/avg_temp_time);
average_fft(1:avg_temp_time) = 0;%分成5段
for a = 0:(averages-1)
subset_ofdm = Tx_data(((a*avg_temp_time)+1):((a+1)*avg_temp_time));%利用循环前缀后缀未叠加的串行加窗信号计算频谱
subset_ofdm_f = abs(fft(subset_ofdm));%分段求频谱
average_fft = average_fft + (subset_ofdm_f/averages);%总共的数据分为5段,分段进行FFT,平均相加
end
average_fft_log = 20*log10(average_fft);
subplot(2,1,2)
plot((0:(avg_temp_time-1))/avg_temp_time, average_fft_log)%归一化 0/avg_temp_time : (avg_temp_time-1)/avg_temp_time
hold on
plot(0:1/IFFT_bin_length:1, -35, 'rd')
grid on
axis([0 0.5 -40 max(average_fft_log)])
ylabel('Magnitude (dB)')
xlabel('Normalized Frequency (0.5 = fs/2)')
title('Windowed OFDM Signal Spectrum')
%====================添加噪声============================================
Tx_signal_power = var(windowed_Tx_data);%发送信号功率
linear_SNR=10^(SNR/10);%线性信噪比
noise_sigma=Tx_signal_power/linear_SNR;
noise_scale_factor = sqrt(noise_sigma);%标准差sigma
noise=randn(1,((symbols_per_carrier)*(IFFT_bin_length+GI))+GIP)*noise_scale_factor;%产生正态分布噪声序列
%noise=wgn(1,length(windowed_Tx_data),noise_sigma,'complex');%产生复GAUSS白噪声信号
Rx_data=windowed_Tx_data +noise;%接收到的信号加噪声
%=====================接收信号 串/并变换 去除前缀与后缀==========================================
Rx_data_matrix=zeros(symbols_per_carrier,IFFT_bin_length+GI+GIP);
for i=1:symbols_per_carrier;
Rx_data_matrix(i,:)=Rx_data(1,(i-1)*(IFFT_bin_length+GI)+1:i*(IFFT_bin_length+GI)+GIP);%串并变换
end
Rx_data_complex_matrix=Rx_data_matrix(:,GI+1:IFFT_bin_length+GI);%去除循环前缀与循环后缀,得到有用信号矩阵
%============================================================%================================================================
%==============================================================
% OFDM解码 16QAM解码
%=================FFT变换=================================
Y1=fft(Rx_data_complex_matrix,IFFT_bin_length,2);%OFDM解码 即FFT变换
Rx_carriers=Y1(:,carriers);%除去IFFT/FFT变换添加的0,选出映射的子载波
Rx_phase =angle(Rx_carriers);%接收信号的相位
Rx_mag = abs(Rx_carriers);%接收信号的幅度
figure(7);
polar(Rx_phase, Rx_mag,'bd');%极坐标坐标下画出接收信号的星座图
%======================================================================
[M, N]=pol2cart(Rx_phase, Rx_mag);
Rx_complex_carrier_matrix = complex(M, N);
figure(8);
plot(Rx_complex_carrier_matrix,'*r');%XY坐标接收信号的星座图
axis([-4, 4, -4, 4]);
grid on
%====================16qam解调==================================================
Rx_serial_complex_symbols = reshape(Rx_complex_carrier_matrix',size(Rx_complex_carrier_matrix, 1)*size(Rx_complex_carrier_matrix,2),1)' ;
Rx_decoded_binary_symbols=demoduqam16(Rx_serial_complex_symbols);
%============================================================
baseband_in = Rx_decoded_binary_symbols;
figure(9);
subplot(2,1,1);
stem(baseband_out(1:100));
subplot(2,1,2);
stem(baseband_in(1:100));
%================误码率计算=============================================
bit_errors=find(baseband_in ~=baseband_out);
bit_error_count = size(bit_errors, 2)
ber=bit_error_count/baseband_out_length

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
请问如何通过labvie或者matlab将角域信号转换成时域信号
请问如何通过labvie或者matlab将角域信号转换成时域信号 之前下载了一个齿轮箱减速器故障数据,里面有匀速转动的信号,但希望把他转换成非匀速的,因为知道如何用阶次分析将时域信号变成角域,所以来个逆过程,但是想了一天也没想出来怎么搞,特意来求教大神
怎样将excel格式的肌电信号导入matlab gui绘制时域波形
本人大一医电本科,刚接触matlab,最近学习一个项目,要先用gui绘制信号的时域波形,但是信号是用excel格式的,采样频率为1000HZ的肌电信号,现在能将excel导入,但是绘制不了曲线。我按照网上搜集的音频绘制时域波形的代码修改了一下,但是运行时总是出错,有大神指点一下吗,希望能给点思路,初学者感激不尽。信号表格如图,有三个通道,现在写的代码选择的是第二个通道,本人改写的代码如下: % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename,pathname]=uigetfile('*xls','select the data File');%读取数据文件 if isequal(filename,0)|isequal(pathname,0) errordlg('没有选中文件','出错'); return; else file=[pathname,filename]; [y,Fs]=load(file);%读取文件表格 handles.Y=y; handles.FS=Fs; Ts=1/Fs;%采样周期 y=y(:,2);%选择第二通道信号 t=0:Ts:(length(y)-1)*Ts;%设置时域波形时间轴 x=y; N=2^15;%DFT点数 X=abs(fft(x,N));%傅里叶变换求幅度谱 axes(handles.axes1); plot(t,x); xlabel('Time/s'); ylim([-0.06 0.06]); guidata(hObject,handles) end ![图片说明](https://img-ask.csdn.net/upload/201805/23/1527059124_831573.png) ![图片说明](https://img-ask.csdn.net/upload/201805/23/1527059133_743990.jpg)
一个波形信号,由小波包变换从时域转换到到时频域,时频域的特征参数S1和S2是什么?怎么提取? matlab
一个波形信号,由小波包变换从时域转换到到时频域,时频域的特征参数S1和S2是什么?怎么提取? matlab
数字信号处理-时域离散随机信号处理
谁有数字信号处理-时域离散随机信号处理 丁玉美的课后题的上机作业答案? 尤其是第二章 维纳滤波和卡尔曼滤波课后的上机作业题编程答案? 如有发到我的QQ邮箱:1621297486@qq.com或者给我地址我自己下载! 非常感谢!
谁会这俩道自适应滤波的题啊,时域离散随机信号处理方面的,急急急,求大神
跪求大神啊!有关于数字信号处理中的时域离散随机信号处理的内容,真的很急!大神!大神!
为什么傅里叶变换可以将时域变为频域?
我在做关于语音信号处理的相关设计,都说傅里叶变换的作用在于将信号的时域波形转换为频域波形,可为什么傅里叶变换能实现这个作用呢?我做的是用MATLAB的。
matlab 音频信号频谱分析中的周期问题
1.问题 用MATLAB做了一个声音信号的时域和频域分析系统 当导入音频文件出来的波形是非周期信号 但是时域分析却能计算出周期频率 频域分析就会显示周期无限大 该怎么解决或者避免这个情况(时域分析周期计算用的是过零检测法) 2.下面是程序截图 ![图片说明](https://img-ask.csdn.net /upload/201906/20/1561030630_77631.png) ![图片说明](https://img-ask.csd n.net/upload/201906/20/1561030668_94516.png) 这两幅图是分析一段音频得出的结果,本来是非周期的,可是计算出了周期 3.代码 ``` Fs=str2double(get(findobj('Tag','sampfreq'),'String')); N=str2double(get(findobj('Tag','sampnum'),'String')); if handles.inputtype==0 msgbox('No wave exist! Please choose a input type!'); return; end n=1; ymax=max([handles.y(1) handles.y(2)]); ymin=min([handles.y(1) handles.y(2)]); from=str2double(get(handles.pointfrom,'String')); to=str2double(get(handles.pointto,'String')); global ti global amp global T if from<1 || to-from<5 msgbox('Error range!'); return; end for i=(from+2):(to-1) if handles.y(i-1)<0 && handles.y(i-2)<0 && handles.y(i)>=0 && handles.y(i+1)>0 if handles.y(i)==0 ti(n)=i; else ti(n)=i-handles.y(i)/(handles.y(i)-handles.y(i-1)); end amp(n)=(ymax-ymin)/2; ymax=0; ymin=0; n=n+1; else if ymax<handles.y(i) ymax=handles.y(i); end if ymin>handles.y(i) ymin=handles.y(i); end end end n=n-1; for i=1:n-1 T=ti(i+1)-ti(i); end ``` 请大神帮忙看一下,本人萌新,若有不清楚的或错误的地方,谢谢大佬指导!
信号处理问题 (用python或者matlab)
比如产生这样的正弦信号,做FFT变换。取得频谱上三个频率分量对应的下标,根据下标求出相应的频率值。 ``` t = np.arange(0,N-1)*T_interval sig = np.sin(200*np.pi*t)+np.sin(500*2*np.pi*t)+np.sin(700*2*np.pi*t) ``` 对于幅度就是用巴特沃斯滤波器,计算过滤出的信号时域上的峰值,求幅度。 ``` def calculate_amp(freq,sig,Fs,N): nyq=0.5*Fs j=0 signature=[None]*len(freq) peak=[None]*len(freq) for i in freq: #print i low=(i-10)/nyq high=(i+10)/nyq b,a=butter(3,[low,high],btype='band') #print b,a signature[j]=lfilter(b,a,sig) maximum=max(signature[j]) minimum=min(signature[j]) peak[j]=(abs(maximum)+abs(minimum))/2 j=j+1 return peak ``` 如果这个正弦信号,频率都为1,2,这些比较小的数值的话,结果都是正确的。但是如果 sig = 100*np.sin(200*np.pi*t)+20*np.sin(500*2*np.pi*t)+np.sin(700*2*np.pi*t) 幅度结果就会相差很大很大。 为什么呢
Matlab 幅频特性 试绘出连续时间信号   ‘
请大神帮忙看一下,为什么另一个图没有出来,绘制幅频特性,试绘出连续时间信号   f (t)  (t) 的时域波形 f ( t )及相应的幅频特性图。
用matlab中在一段音乐加高频噪声
帮我在一段低频音乐中加入高频噪音。要有加噪前后的音乐、时域波形和频域波形。
C语言编程实现FFT,帮帮忙吧
课题要求: 利用C实现FFT,本程序旨在训练基本编程能力。本设计需按照以下要求进行: (1)、 C语言编程产生时域离散信号; (2)、 编制基2时域抽取FFT算法、基2频域抽取FFT算法; (3)、 对离散信号进行FFT变换,进行频谱分析并和Matlab频谱分析对比;
复指数函数时域为门函数的理解
http://blog.csdn.net/deepdsp/article/details/6645994,其中说【exp(j*2*pi*k*n/N)在时域上幅度为一个门函数,对应的频谱为sinc函数,这是数字信号处理中一个基本的对应关系。】 exp(j*2*pi*k*n/N)为什么在时域上是个门函数呢?该函数的幅值不是恒等于1吗?
滚动时域优化是什么?如何通俗的解释?
英文似乎是 receding horizon control / model predictive control ? 滚动时域优化/滚动时域控制 在一些文献里遇到这个词,似乎是一种动态决策过程? 查了半天也没整明白是啥意思
利用MATLAB提取数据特征参数
各位大神们,小妹刚接触MATLAB,需要用对一组卫星数据做异变或者说是故障的特征参数提取,有几个问题困扰了很久。 1、由于数据间隔不一定,好几秒甚至几小时一个值,有三年的数据,我已经按1秒插值,然后又按100抽样,这样频率只有0.01,在频域都看不出什么东西,有什么办法能在频域上进行分析? 2、目前采用的是小波变换或者小波包变换,我想对经典的那几个时域特征参数(方差、裕度、波性因子等)做提取,当然如果能提取到频域的东西就更好了,因为有一个数据故障在时域就看的很清楚了,用小波进行奇异点检测感觉还不如直接看时域效果的好,所以但感觉提取不到什么东西,不知道是不是我的理解错误了还是方法不对,希望有大神指点一下。 3、还想到一个方法就是先对数据进行数值积分然后在进行数值微分,用原信号减去数值微分后的数据求残差,分析残差,离散 数据能直接使用diff()方法吗?部分程序语句如下: filename = 'D:\Data\igso data_zpp\IK8_100.TXT'; [y]=textread(filename,'%f','headerlines',1); zhijieweifen=diff(y); %微分 t=0:10:length(y); yy=y(1:10:length(y)); datasum=length(t); Z=zeros(1,datasum); Z(1,1)=0; for n=2:datasum; Z(1,n)=trapz(t(1,1:n),yy(1,1:n)); %进行数值积分 end yicijifen=Z/10; 4、直接用神经网络进行拟合好,还是积分后再拟合好呢? ![图片说明](https://img-ask.csdn.net/upload/201501/03/1420291326_749377.png) 本来想把txt数据也发上来,后来发现不能发数据,所以只能有一张图片了 图片中黄色曲线为有异常的点(时域图,横坐标为时间点) 因为毕设需要,时间比较紧,有懂的大神一定要帮我解答一下,也可以直接联系扣扣514879303,或者发到扣扣邮箱也行,十分感谢!
求问如何对时域散点图降噪
我们一共有500个样本,每个样本1024个样本点,然后我们每张图做了时域散点图,有高斯白噪声,如果单纯利用小波降噪,只能变成一条曲线不能成立,求问该用什么方法去降噪呢
java 傅里叶实现时域与频域的转换
解析音频文件,傅里叶实现时域转换成频域,小白,求解。。。。。。。。。。。。。。。。。。。。
ADS怎么直接显示波时域,频域波形啊?急急急!
本人刚开始做射频,刚开始使用ADS,ADS怎么直接显示波时域,频域波形啊?急急急!!!
怎样对ADS-B信号进行IQ调制,自己尝试着写,发现最后的IQ样本不对?
clear all; clc; % load('E:\ADS-B Receiver-V1\TestData\ABC123.mat'); % load('E:\ADS-B Receiver-V1\TestData\Binary20_24_28.mat'); % Data_Block=round(rand(1,112)); AA = '780123'; Lon = 113.23; Lat = 35.15; Alt = 32500; [Data_Block_odd,Data_Block_even] = Data_Block_Generate(AA,Lon,Lat,Alt); %实现中频10MHz ASK调制 IFCarr_Fre=10e6; Sample_Fre=50e6; %时延 delay_odd=0;%us delay_even=0;%us SNR1=25; [sl1,ADSB_1090ES_Signal_odd1]=ADSB_1090ES_Generate(Data_Block_odd,IFCarr_Fre,Sample_Fre,delay_odd,SNR1); [sl2,ADSB_1090ES_Signal_even1]=ADSB_1090ES_Generate(Data_Block_even,IFCarr_Fre,Sample_Fre,delay_even,SNR1); slu = [sl1,zeros(1,300),sl2]; sl1n=sqrt(10.^(25/10)).*slu + randn(1,12300);%randn 正太分布的随机数 ADSB_1090ES_Signal = [ADSB_1090ES_Signal_odd1,ADSB_1090ES_Signal_even1]; t=0:1/Sample_Fre:1/Sample_Fre*(length(ADSB_1090ES_Signal)-1); %save ADSB_1090ES_Signal ADSB_1090ES_Signal1 ADSB_1090ES_Signal11 ADSB_1090ES_Signal2 ... % ADSB_1090ES_Signal21 ADSB_1090ES_Signal3 ADSB_1090ES_Signal31; %ADSB_1090ES_Data1 = downsample(ADSB_1090ES_Data,4); %ADSB_1090ES_Signal1 = downsample(ADSB_1090ES_Signal,4); %t1 = downsample(t,4); % %ADSB_1090ES_Signal_Hil = hilbert(ADSB_1090ES_Signal); %ADSB_1090ES_Signal_Hili = imag(ADSB_1090ES_Signal_Hil); %sum(ADSB_1090ES_Signal.*ADSB_1090ES_Signal_Hili) %fft_sig = fftshift(fft(ADSB_1090ES_Signal)); %fft_sigh = fftshift(fft(ADSB_1090ES_Signal_Hil)); %N=length(fft_sig); %f=linspace(-Sample_Fre/2,Sample_Fre/2 - Sample_Fre/N,N); %figure; %subplot(211); %plot(f,abs(fft_sig)); %subplot(212); %plot(f,abs(fft_sigh)); %figure; %plot(t.*1e6,20*log10(abs(ADSB_1090ES_Signal_Hil))); %grid on; %title('Hilbert变换后的信号波形');% % % ADSB_1090ES_Signal = downsample(abs(ADSB_1090ES_Signal_Hil),4); % % t1 = downsample(t,4); figure(1); plot(t.*1e6,ADSB_1090ES_Signal,'b'); grid on; % legend('中频信号波形','Hilbert变换后的信号波形'); title('时域波形');xlabel('t/us');ylabel('幅度'); %数字正交调制 % IF1_carrier=10e6; % IFCarr_dem = 2*Sample_Fre - IFCarr_Fre; cosCar_IF1=cos(2*pi*IFCarr_Fre*t); sinCar_IF1=sin(2*pi*IFCarr_Fre*t); %同相分量 ADSB_1090ES_RecI =ADSB_1090ES_Signal .*cosCar_IF1; %正交分量 ADSB_1090ES_RecQ =ADSB_1090ES_Signal .*sinCar_IF1; %构建低通滤波器,截止频率为2MHz %Lowpass=fir1(8,2e6/(Sample_Fre/2));%阶数目前是随意选的 % figure % %低通滤波器的频率响应 % freqz(Lowpass,1); %ADSB_1090ES_RecI_LP=filter(Lowpass,1,ADSB_1090ES_RecI);%同相分量 %ADSB_1090ES_RecQ_LP=filter(Lowpass,1,ADSB_1090ES_RecQ);%正交分量 %希尔伯特变换 ADSB_1090ES_Rec=ADSB_1090ES_RecI+1i*ADSB_1090ES_RecQ; % ADSB_1090ES_Rec=abs(ADSB_1090ES_Rec); % ADSB_1090ES_Rec=sqrt(ADSB_1090ES_Rec); % delay=(30+8)/2; % % the downsample for receive_signal % ADSB_1090ES_Rec_downsample=downsample(ADSB_1090ES_Rec,2); % % the delay adjust for filter % re_detection= ADSB_1090ES_Rec_downsample(delay+1:end-delay); %由于通过滤波器,产生了时延(线性相位) %figure %subplot(3,1,1); %plot(t.*1e6,abs(ADSB_1090ES_RecI_LP));grid on; %title('同相分量');xlabel('t/us');ylabel('幅度'); %subplot(3,1,2); %plot(t.*1e6,abs(ADSB_1090ES_RecQ_LP));grid on; %title('正交分量');xlabel('t/us');ylabel('幅度'); %subplot(3,1,3); %plot(t.*1e6,abs(ADSB_1090ES_Rec));grid on; %title('解调后信号');xlabel('t/us');ylabel('幅度'); %求调制信号的定积分 N = length(t)-1; dt = 1/Sample_Fre; integral_ADSB_1090ES_Rec(1)=0; for i=1:N integral_ADSB_1090ES_Rec(i+1)=integral_ADSB_1090ES_Rec(i)+ADSB_1090ES_Rec(i)*dt; end figure(2); plot(t,integral_ADSB_1090ES_Rec); title('IQ信号'); save ADSB_1090ES_Signal_odd1 有偿求教 加v guxinan520
基于matlab gui 的信道编码技术设计与仿真
我的毕设如题,主要是不知道有哪些常用的信道编码模型,在gui中的模型是什么样子,任务书中的要求是建立常见的几种信道编码技术演示模型,实现这几种信道编码技术演示内容的切换与演示,可以实时修改实验参数,能够实时观察每个节点上相关信号的时域或频域波形,达到动态演示和交互式性的目的。求大牛解答,拜托了 ,感谢!!!!
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
羞,Java 字符串拼接竟然有这么多姿势
二哥,我今年大二,看你分享的《阿里巴巴 Java 开发手册》上有一段内容说:“循环体内,拼接字符串最好使用 StringBuilder 的 append 方法,而不是 + 号操作符。”到底为什么啊,我平常一直就用的‘+’号操作符啊!二哥有空的时候能否写一篇文章分析一下呢? 就在昨天,一位叫小菜的读者微信我说了上面这段话。 我当时看到这条微信的第一感觉是:小菜你也太菜了吧,这都不知道为啥啊!我估...
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
前言 GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 上周给大家分享了一篇10个让你笑的合不拢嘴的Github项目,而且还拿了7万+个Star哦,有兴趣的朋友,可以看看, 印象最深刻的是 “ 呼吸不止,码字不停 ”: 老实交代,你是不是经常准备写个技术博客,打开word后瞬间灵感便秘,码不出字? 有什么
推荐几款比较实用的工具,网站
1.盘百度PanDownload 这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风????) 不要去某站买付费的???? PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了 bejson网站 3.二维码美化 这个网站的二维码美化很好看,网站界面也很...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的段子
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
相关热词 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片 c# 图片颜色调整 最快 c#多张图片上传 c#密封类与密封方法
立即提问