The 12th IEEE ICCSP

The 12th IEEE International Conference on Communication Systems and Projects


  • invitation

  • registration

  • favorite

vivado中include默认路径配置

Posted on 2018-05-07

在FPGA的日常开发中,经常会有代码移植的情况。在移植过后,原有的代码中include的文件的路径不再包含在工程的默认路径中。这个时候需要手动配置

  • vivado环境中include路径不对时的提示
    vivado环境中include路径不对时的提示

第一步 project setting

第二步 verilog option

第三步 add Directories

第四步 添加需要设置的上层

vivado设置

结果:

配置成功结果

git常用命令及操作

Posted on 2018-04-28

SRIO学习笔记(一)

Posted on 2018-04-24

让单个LED亮起来!一种联合体和结构体位域的应用

Posted on 2018-04-24 | In 单片机

以前的时候总觉得C语言的联合体用处不大,直到看到别人其中的一个用法……

结构体的位域语法

1
2
3
4
5
6
7
8

#include <stdio.h>

struct {
uint8_t a:1; // 类型 用户标识符 :位域长度;
uint8_t b:4;
uint8_t c:3;
}bits;

几点说明:

    1. 位域不能跨两个存储单元,一个位域只能存储在同一个位域单元中
    1. 位域可以没有位域名,此时它只能用来填充或者调整下一个位域名的位置

联合体的语法

1
2
3
4
typedef union{
bits REG_Bits;
uint8_t REG;
}reg_typeDef;

典型用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

#include <stdio.h>
#include <stdint.h>

typedef struct{
uint8_t Pin_0:1;
uint8_t Pin_1:1;
uint8_t Pin_2:1;
uint8_t Pin_3:1;
uint8_t Pin_4:1;
uint8_t Pin_5:1;
uint8_t Pin_6:1;
uint8_t Pin_7:1;
}GPIO_Port_Bits;

typedef union{
GPIO_Port_Bits Bits;
uint8_t Port;
}GPIO_Port;

GPIO_Port *GPIOA = (uint8 *)(0x100000);

int main()
{
GPIOA->Bits.Pin_0 = 1;
return 0;
}

参考来源:吴越散民的博客-C语言中结构体的位域(bit-fields)

IIR滤波器的实现

Posted on 2018-04-20

IIR 的系统函数:

$$ \dfrac{Y(z)}{X(z)} = \dfrac {b_1 + b_2z^{-1} + b_3z^{-2}}
{a_1 + a_2z^{-1} + a_3z^{-2}} $$

IIR数字滤波器的基本结构

  • 直接Ⅰ型
  • 直接Ⅱ型
  • 级联型
  • 并联型

IIR滤波器MATLAB函数

Posted on 2018-04-20

转自博客 蓝蓝的天上白云飘

对于滤波器设计,以前虽然学过相关的理论(现代数字信号处理和DSP设计),但一直不求甚解,也没用过。趁着最近使用了一下,就来重学一回,温故而知新。
先来说说IIR滤波器设计,理论与原理参考如下博客,写得简明易懂,不错。
[数字信号处理]IIR滤波器基础
[数字信号处理]IIR滤波器的间接设计(C代码)
[数字信号处理]IIR滤波器的直接设计(C代码)

一般IIR设计可分三种:间接设计(原型转换设计)、直接设计、直接使用工具软件如MATLAB的IIR函数设计。前2种方法,上面的博客已经写得很清楚,理论比较多,设计还是很复杂的。但在实际工程应用中,多采用MATLAB的IIR函数或者FDATOOL工具进行,非常方便快捷。
OK,来个示例来说明采用MATLAB的IIR函数设计过程,花一会儿的功夫就可以快速入门,so easy!废话不多说,直接上MATLAB IIR.m文件,最后附上效果图。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
% IIR滤波器设计
% 目的:设计一个采样频率为1000Hz、通带截止频率为50Hz、阻带截止频率为100Hz的低通滤波器,并要求通带最大衰减为1dB,阻带最小衰减为60dB。

clc;clear;close all;

% 1. 产生信号(频率为10Hz和100Hz的正弦波叠加)
Fs=1000; % 采样频率1000Hz
t=0:1/Fs:1;
s10=sin(20*pi*t); % 产生10Hz正弦波
s100=sin(200*pi*t); % 产生100Hz正弦波
s=s10+s100; % 信号叠加

figure(1); % 画图
subplot(2,1,1);plot(s);grid;
title('原始信号');

% 2. FFT分析信号频谱
len = 512;
y=fft(s,len); % 对信号做len点FFT变换
f=Fs*(0:len/2 - 1)/len;

subplot(2,1,2);plot(f,abs(y(1:len/2)));grid;
title('原始信号频谱')
xlabel('Hz');ylabel('幅值');

% 3. IIR滤波器设计
N=0; % 阶数
Fp=50; % 通带截止频率50Hz
Fc=100; % 阻带截止频率100Hz
Rp=1; % 通带波纹最大衰减为1dB
Rs=60; % 阻带衰减为60dB

% 3.0 计算最小滤波器阶数
na=sqrt(10^(0.1*Rp)-1);
ea=sqrt(10^(0.1*Rs)-1);
N=ceil(log10(ea/na)/log10(Fc/Fp));

% 3.1 巴特沃斯滤波器
Wn=Fp*2/Fs;
[Bb Ba]=butter(N,Wn,'low'); % 调用MATLAB butter函数快速设计滤波器
[BH,BW]=freqz(Bb,Ba); % 绘制频率响应曲线
Bf=filter(Bb,Ba,s); % 进行低通滤波
By=fft(Bf,len); % 对信号f1做len点FFT变换

figure(2); % 画图
subplot(2,1,1);plot(t,s10,'blue',t,Bf,'red');grid;
legend('10Hz原始信号','巴特沃斯滤波器滤波后');
subplot(2,1,2);plot(f,abs(By(1:len/2)));grid;
title('巴特沃斯低通滤波后信号频谱');
xlabel('Hz');ylabel('幅值');

% 3.2 切比雪夫I型滤波器
[C1b C1a]=cheby1(N,Rp,Wn,'low'); % 调用MATLAB cheby1函数快速设计低通滤波器
[C1H,C1W]=freqz(C1b,C1a); % 绘制频率响应曲线
C1f=filter(C1b,C1a,s); % 进行低通滤波
C1y=fft(C1f,len); % 对滤波后信号做len点FFT变换

figure(3); % 画图
subplot(2,1,1);plot(t,s10,'blue',t,C1f,'red');grid;
legend('10Hz原始信号','切比雪夫I型滤波器滤波后');
subplot(2,1,2);plot(f,abs(C1y(1:len/2)));grid;
title('切比雪夫I型滤波后信号频谱');
xlabel('Hz');ylabel('幅值');

% 3.3 切比雪夫II型滤波器
[C2b C2a]=cheby2(N,Rs,Wn,'low'); % 调用MATLAB cheby2函数快速设计低通滤波器
[C2H,C2W]=freqz(C2b,C2a); % 绘制频率响应曲线
C2f=filter(C2b,C2a,s); % 进行低通滤波
C2y=fft(C2f,len); % 对滤波后信号做len点FFT变换

figure(4); % 画图
subplot(2,1,1);plot(t,s10,'blue',t,C2f,'red');grid;
legend('10Hz原始信号','切比雪夫II型滤波器滤波后');
subplot(2,1,2);plot(f,abs(C2y(1:len/2)));grid;
title('切比雪夫II型滤波后信号频谱');
xlabel('Hz');ylabel('幅值');

% 3.4 椭圆滤波器
[Eb Ea]=ellip(N,Rp,Rs,Wn,'low'); % 调用MATLAB ellip函数快速设计低通滤波器
[EH,EW]=freqz(Eb,Ea); % 绘制频率响应曲线
Ef=filter(Eb,Ea,s); % 进行低通滤波
Ey=fft(Ef,len); % 对滤波后信号做len点FFT变换

figure(5); % 画图
subplot(2,1,1);plot(t,s10,'blue',t,Ef,'red');grid;
legend('10Hz原始信号','椭圆滤波器滤波后');
subplot(2,1,2);plot(f,abs(Ey(1:len/2)));grid;
title('椭圆滤波后信号频谱');
xlabel('Hz');ylabel('幅值');

% 3.5 yulewalk滤波器
fyule=[0 Wn Fc*2/Fs 1]; % 在此进行的是简单设计,实际需要多次仿真取最佳值
myule=[1 1 0 0]; % 在此进行的是简单设计,实际需要多次仿真取最佳值
[Yb Ya]=yulewalk(N,fyule,myule); % 调用MATLAB yulewalk函数快速设计低通滤波器
[YH,YW]=freqz(Yb,Ya); % 绘制频率响应曲线
Yf=filter(Yb,Ya,s); % 进行低通滤波
Yy=fft(Yf,len); % 对滤波后信号做len点FFT变换

figure(6); % 画图
subplot(2,1,1);plot(t,s10,'blue',t,Yf,'red');grid;
legend('10Hz原始信号','yulewalk滤波器滤波后');
subplot(2,1,2);plot(f,abs(Yy(1:len/2)));grid;
title('yulewalk滤波后信号频谱');
xlabel('Hz');ylabel('幅值');

% 4. 各个滤波器的幅频响应对比分析
A1 = BW*Fs/(2*pi);
A2 = C1W*Fs/(2*pi);
A3 = C2W*Fs/(2*pi);
A4 = EW*Fs/(2*pi);
A5 = YW*Fs/(2*pi);

figure(7); % 画图
subplot(1,1,1);plot(A1,abs(BH),A2,abs(C1H),A3,abs(C2H),A4,abs(EH),A5,abs(YH));grid;
xlabel('频率/Hz');
ylabel('频率响应幅度');
legend('butter','cheby1','cheby2','ellip','yulewalk');

handapao

Posted on 2018-04-16

handapao

Posted on 2018-04-16

这是一个二级标题

这是一个三级标题

  • 这是一个重点

    这是一个加粗

    这是一个引言

    1
    2
    3
    4
    #include <stdio.h>
    int maim()
    {
    }

test

Posted on 2018-04-16

win-powershell的基本命令和编写语法

Posted on 2018-04-16

常用命令

创建目录、列出目录内项目、更改当前目录

1
2
3
mkdir <newfolder>
dir
cd <newfolder>

输出信息

1
echo "Hello world"

1
2
3
4
5
REM 这是一个注释信息
REM 不显示后续和当前命令行
@echo off
REM 调用test.bat
call c:\test.bat

一些语法

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@REM creat
@REM first parameter is layout ,second parameter is title
@echo off

set tempvar1=%1
if defined tempvar1 goto creat
echo "ERROR: Missing Title"
exit
REM
:creat
set tempvar2=%2
if defined tempvar2 goto Layout
hexo new post %tempvar1% && code .\source\_posts\%tempvar1%.md
exit
:Layout
hexo new post %tempvar1% %tempvar2% && code .\source\_posts\%tempvar1%.md
exit
12…4

Songtao Yang

32 posts
9 categories
34 tags
© 2018 Songtao Yang
Powered by Hexo
|
Theme — NexT.Muse v5.1.4
0%