设计一个程序(c++,matlab都可以)计算出普通类似正弦波的波形的波峰的个数

设计一个程序(c++,matlab都可以)计算出普通类似正弦波的波形的波峰的个数,第1张

一般假定 时间序列 为 y[t], 离散数据 个数 为 n

计算波形个数,通常要假定一条基线,基线以上为峰,基线以下为谷。

通常用时间序列平均值为基线 0。

然后 用 上跨 0 的方法判断 “进峰”,或下跨 0 的方法判断 “进谷”。

例如,海浪。

int n_wave(double y, int n)

{

double mean=00;

int N=0;

for (i=0;i<n;i++) mean = mean + y[i];

mean = mean / n; //得平均值

for (i=0;i<n;i++) y[i] = y[i] - mean; // 扣去平均值

for (i=0;i<n-1;i++){

if (y[i+1] > 0 && y[i] <= 0 ) N++; // 上跨 0 则得1个峰

}

return N;

}

==================

工程实用时,还可以考虑一个 或值 dy (或字 是 门字头,里面一个 或),

也就是 y > dy 才算 进峰,y < -dy 才算 进 谷。-dy 到 dy 之间 处理为 0 。

上跨0和下跨0得到的波的个数在波形很不规则时会有一点差。海浪波谱分析里一般以下跨0为准。

像你这种波形像似风增水和波浪的叠加,也可以 用 滤波方式,消去 倾斜趋势 后再统计峰的个数。

另外,像你这种波形,波形尾部 的 “坏数据”需要截 去后,再作统计计算。

这些都是锦上添花。

clc

clear

x=[0,0,0,0,0,0,0,0,1];

h=[1,0,-1,0,0,0,0,0,0];

y=conv(x,h);

figure(1);

stem(linspace(0,length(x)-1,length(x)),x)

figure(2);

stem(linspace(0,length(h)-1,length(h)),h)

figure(3); 

stem(linspace(0,length(y)-1,length(y)),y)

这样的

1、在打开的ie浏览器窗口右上方点击齿轮图标,选择“Internet选项”,如下图所示:

2、在打开的Internet选项窗口中,切换到安全栏,在安全选卡中点击“自定义级别”,如下图所示:

3、在“安全设置-Internet 区域”界面找到“Java 小程序脚本”、“活动脚本”,并将这两个选项都选择为“禁用”,然后点击确定,如下图所示:

t=0:0001:1;

f1=sin(10pit)+sin(100pit)+sin(200pit);

f2=sin(200pit)+sin(10pit)-sin(100pit);

figure(1);

plot(t,f1,t,f2);

figure(2);

t=1000(1:512)/1024;

ff1=fft(f1,1024)/1024;

dff1=2abs(ff1(1:512));

ff2=fft(f2,1024)/1024;

dff2=2abs(ff2(1:512));

plot(t,dff1,t,dff2);

选采样频率时注意采样定律和波形的周期(采样频率不低于200hz,周期不小于02s)

yrec=[zeros(1,45000),ones(1,10001),zeros(1,45000)];

>> t=linspace(-4,4,length(yrec));

>> plot(t,yrec),8,

真的是爱你 举报

你好,里面的X3(t)函数图像怎么画啊?

举报 曲中

如果题目说的那个函数,对应于-4到4的数据是yrec 那么我这三句就画出了它的图像 不知道那个pi函数是什么函数

真的是爱你 举报

yrec我也会画,但那个不知道什么符号的电脑不会打出来当它pi吧!反正 X(t)=pi(t)=yrec=[zeros(1,45000),ones(1,10001),zeros(1,45000)]; 然后它要画出 X3(t)=pi(t-1) ; 的图像 麻烦了谢谢,刚刚学不会画啊!! 那我原来画的yret就是-4<=t<4时候pi(t)图像 现在画pi(t-1)只是原来的图像向右移动一个单位 yrec=[zeros(1,45000),ones(1,10001),zeros(1,45000)]; >> t=linspace(-4,4,length(yrec))+1; >> plot(t,yrec) 这样就可以了,MATLAB 菜鸟怎么用matlab画出这个函数的波形图像啊

yrec=[zeros(1,45000),ones(1,10001),zeros(1,45000)];

m序列是最长线性反馈移位寄存器序列的简称。它是由带线性反馈的移存器产生的周期最长的序列。

序列的产生

从上图可以看出,先设置初始状态,之后根据框图的原型来进行移位,进行mod2运算。这样最后移位15次后又回到初始状态(1,0,0,0)。所以除了全零状态,一共可以用15种。

一般来说,一个n级线性反馈移存器可能产生的最长周期等于2^n-1

线性反馈移位寄存器原理方框图

接下来是matlab代码

close all; clear all; clc;

fb=200000;

upsample_NUM=20; %每个符号的采样点数目

BIT_NUM=520;

load RC_LPFmat;

close all为关闭所有窗口,clear all为清除所有变量,clc清除命令

这里加载了一个LPF文件。

下面的公式可以作为依据直接产生m序列:

imagepng

%产生m序列

%m序列本原多项式:x^3+x+1, x^4+x+1, x^5+x^2+1,x^6+x+1, x^7+x^3+1

% g3=[0 1 1];

% g4=[0 0 1 1];

% g5=[0 0 1 0 1];

% g6=[0 0 0 0 1 1];

% g7=[0 0 0 1 0 0 1];

g8=[0 0 0 1 1 1 0 1];

这里的要求是2的8次方的m序列,所以m的本原多项式可以得出。g8为特征多项式表示的数组模式,就相当于反馈系数cof,注意一开头的都是0;

%下面产生m=8的序列

m=length(g8);

N=2^m-1;

register=[zeros(1,m-1) 1]; %移位寄存器的初始状态

new_register=zeros(1,m);

m_seq_out8=zeros(1,N+1);

m_seq_out8(1)=register(m);

for i=2:N

new_register(1)=mod(sum(g8register),2); %移存器与反馈系数进行模2加,更新移存器第1个数

for j=2:m

new_register(j)=register(j-1); %更新移存器其他数

end

register=new_register;

m_seq_out8(i)=register(m); %输出

end

m_seq_out9=2m_seq_out8-1; %双极性变换

seq_byte=zeros(1,32); %32字节,每个字节8bit,m序列被存放在该32字节中

产生m=8的序列,当然N=2^m-1,这是最长周期,设置移位寄存器的初始状态,m-1列的0,最后是1,应该是[00000001],即a7为1,其他为0。

接下来的循环语句就是更新移存器,定义了新的变量new_register保存新的数据,最后返还给register。最后m序列数据都被存在32个字节中。

for i=1:32

for j=1:8

seq_byte(i)=seq_byte(i)2;

if m_seq_out8((i-1)8+j)==1

seq_byte(i)=seq_byte(i)+1;

end

end

end

data1=zeros(1,20length(m_seq_out9)); %将采样率扩展20倍,每个bit对应20个样值

for i=1:length(m_seq_out9)

for j=1:20

data1(20(i-1)+j)=m_seq_out9(i);

end

end

data2=[data1,data1,data1,data1];

data3=convn(data2,LPF1); %LPF1为低通滤波器,对应抽样率为(20200KSPS=4 MSPS)

i=1:length(data3);

figure;

plot(i,data3);

接下来的语法嵌套for循环,最后将data和LPF进行卷积,也就是说在频域进行相乘,这时候会出现“吉布斯”效应,就是低通滤波器产生的峰值谷值会比一跌个85%左右,所以产生了这样的波形。

以上就是关于设计一个程序(c++,matlab都可以)计算出普通类似正弦波的波形的波峰的个数全部的内容,包括:设计一个程序(c++,matlab都可以)计算出普通类似正弦波的波形的波峰的个数、简单matlab题目 画x[n] y[n] h[n] 波形图 求程序、通过编写matlab程序得到DSB的时域波形等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10127458.html

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

发表评论

登录后才能评论

评论列表(0条)

保存