常用的信号处理仿真软件有哪些?

常用的信号处理仿真软件有哪些?,第1张

《数码衡冲相机软件》(NI-IMAQ FOR IEEE 1394)(V2.0.1)[Bin] 2.0.1

NI-IMAQ是为用于移动产品的IEEE 1394接口类型相机提供易用的解决方案。驱动程序将NI测量和自动探测器结合在一起,所以你能很容易地咐返歼配置你的相机。你能快速在系统里建立IEEE 1394接口类型的相机与电脑的连接并立刻获得相机中的图象,就一套易用的程序来说,你能在LabVIEW 或 Measurement Studio中建立应用,通过VIs建立或直接访问C库功能。

可与NI 8252或其他任何OHCI IEEE 1394接口设备配合世物使用

与LabVIEW、LabWindows/CVI、C、Visual Basic和C++兼容

从支持IIDC的IEEE 1394摄像头采集图像

通过软件交互地配置摄像头

主程序部分:

%programm 3-1

%bpsk.m

%

% Simulation program to realize BPSK transmission system

%

% Programmed by H.Harada and T.Yamamura,

%

%******************** Preparation part **********************

sr=256000.0% Symbol rate

ml=1 % Number of modulation levels

br=sr.*ml % Bit rate (=symbol rate in this case)

nd = 1000 % Number of symbols that simulates in each loop

ebn0=3 % Eb/N0

IPOINT=8 % Number of oversamples

%******************* Filter initialization ********************

irfn=21% Number of filter taps

alfs=0.5 % Rolloff factor

[xh] = hrollfcoef(irfn,IPOINT,sr,alfs,1) %Transmitter filter coefficients

[xh2] = hrollfcoef(irfn,IPOINT,sr,alfs,0) %Receiver filter coefficients

%******************** START CALCULATION *********************

nloop=100 % Number of simulation loops

noe = 0 % Number of error data

nod = 0 % Number of transmitted data

for iii=1:nloop

%******************** Data generation ***********************

data=rand(1,nd)>0.5 % rand: built in function

%******************** BPSK Modulation ***********************

data1=data.*2-1

data2 = oversamp( data1, nd , IPOINT)

data3 = conv(data2,xh) % conv: built in function

%****************** Attenuation Calculation *****************

spow=sum(data3.*data3)/nd

attn=0.5*spow*sr/br*10.^(-ebn0/10)

attn=sqrt(attn)

%********************** Fading channel **********************

% Generated data are fed into a fading simulator

% In the case of BPSK, only Ich data are fed into fading counter

% [ifade,qfade]=sefade(data3,zeros(1,length(data3)),itau,dlvl,th1,n0,itnd1,now1,length(data3),tstp,fd,flat)

% Updata fading counter

%itnd1 = itnd1+ itnd0

%************ Add White Gaussian Noise (AWGN) ***************

inoise=randn(1,length(data3)).*attn % randn: built in function

data4=data3+inoise

data5=conv(data4,xh2) % conv: built in function

sample=irfn*IPOINT+1

data6 = data5(sample:8:8*nd+sample-1)

%******************** BPSK Demodulation *********************

demodata=data6 >0

%******************** Bit Error Rate (BER) ******************

noe2=sum(abs(data-demodata)) % sum: built in function

nod2=length(data) % length: built in function

noe=noe+noe2

nod=nod+nod2

fprintf('%d\t%e\n',iii,noe2/nod2)%fprintf:built in function

end % for iii=1:nloop

%********************** Output result ***********************

ber = noe/nod

fprintf('%d\t%d\t%d\t%e\n',ebn0,noe,nod,noe/nod)

%******************** end of file ***************************

下面是子程序:

% Program 3-2

% oversamp.m

%

% Insert zero data to input data

%

% Programmed by H.Harada

%

function [out] = oversamp( indata, nsymb , sample)

%****************** variables *************************

% indata : input sequence

% nsymb : Number of symbols

% sample : Number of oversample

% *****************************************************

out=zeros(1,nsymb*sample)

out(1:sample:1+sample*(nsymb-1))=indata

%******************** end of file ***************************

子程序:

% Program 3-3

% hrollfcoef.m

%

% Generate coefficients of Nyquist filter

%

% programmed by H.Harada

%

function [xh] = hrollfcoef(irfn,ipoint,sr,alfs,ncc)

%****************** variables *************************

% irfn : Number of symbols to use filtering

% ipoint : Number of samples in one symbol

% sr : symbol rate

% alfs : rolloff coeficiense

% ncc: 1 -- transmitting filter 0 -- receiving filter

% *****************************************************

xi=zeros(1,irfn*ipoint+1)

xq=zeros(1,irfn*ipoint+1)

point = ipoint

tr = sr

tstp = 1.0 ./ tr ./ ipoint

n = ipoint .* irfn

mid = ( n ./ 2 ) + 1

sub1 = 4.0 .* alfs .* tr % 4*alpha*R_s

for i = 1 : n

icon = i - mid

ym = icon

if icon == 0.0

xt = (1.0-alfs+4.0.*alfs./pi).* tr % h(0)

else

sub2 =16.0.*alfs.*alfs.*ym.*ym./ipoint./ipoint

if sub2 ~= 1.0

x1=sin(pi*(1.0-alfs)/ipoint*ym)./pi./(1.0-sub2)./ym./tstp

x2=cos(pi*(1.0+alfs)/ipoint*ym)./pi.*sub1./(1.0-sub2)

xt = x1 + x2 % h(t) plot((1:length(xh)),xh)

else % (4alphaRst)^2 = 1plot((1:length(xh)),xh)

xt = alfs.*tr.*((1.0-2.0/pi).*cos(pi/4.0/alfs)+(1.0+2.0./pi).*sin(pi/4.0/alfs))./sqrt(2.0)

end % if sub2 ~= 1.0

end % if icon == 0.0

if ncc == 0 % in the case of receiver

xh( i ) = xt ./ ipoint ./ tr% normalization

elseif ncc == 1 % in the case of transmitter

xh( i ) = xt ./ tr % normalization

else

error('ncc error')

end% if ncc == 0

end % for i = 1 : n

%******************** end of file ***************************

就是这三个了,不知道能不能帮助你、、、

具体GPS信号跟踪误差怎么求不知道,如果你能求得该误差信号, 具体的包络算法解释如下

求包络(envelop)的最方便的方法是隐脊用希灶伍渗尔伯特变换, 希尔伯特变换返回的是analytical signal。

对于一个任意的橘锋时序信号x(t),一个简单的程序就是:

y(t)=hilbert(x(t))             %%%return analytical signal

envelop=abs(y(t))          %%%get the magnitude of the analytical signal,namely envelop

我自己的以前用的一个图附上了, 红色部分是原始信号,绿色部分是包络部分,也就是信号的幅值。 包络线正好将信号包住。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12394425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存