利用duffing振子模型提取线性调频信号的脉冲宽度matlab
时间: 2023-08-01 12:07:55 浏览: 35
以下是利用Duffing振子模型提取线性调频信号的脉冲宽度的MATLAB代码:
```matlab
% 定义Duffing振子的参数
alpha = 0.1;
beta = 1;
delta = 0.3;
gamma = 0.37;
% 定义线性调频信号
fs = 100; % 采样频率
t = 0:1/fs:10;
f0 = 2; % 起始频率
f1 = 10; % 终止频率
x = chirp(t,f0,10,f1);
% 初始化Duffing振子的状态变量和输出变量
x1 = 0;
x2 = 0;
y = zeros(size(x));
% 利用Duffing振子提取脉冲宽度
for n = 1:length(x)
xdd = -delta*x2-alpha*x1-beta*x1^3+gamma*cos(2*pi*x(n));
x1 = x1 + x2/fs;
x2 = x2 + xdd/fs;
if (x1 > pi)
x1 = x1 - 2*pi;
elseif (x1 < -pi)
x1 = x1 + 2*pi;
end
if (n > 1 && y(n-1) <= 0 && y(n) > 0)
start_time = t(n-1);
elseif (n > 1 && y(n-1) >= 0 && y(n) < 0)
end_time = t(n);
pulse_width = end_time - start_time
end
y(n) = x1;
end
% 绘制输出变量
plot(t,y);
xlabel('Time (s)');
ylabel('Output');
```
这段代码与前面的代码类似,不同之处在于当输出变量从正数变为负数时,就表示一个脉冲开始;当输出变量从负数变为正数时,就表示一个脉冲结束,计算出脉冲持续的时间即为脉冲宽度。最后,绘制输出变量的图像。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)