中值滤波与均值滤波
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四川大学电气信息学院
微机原理与接口技术
实验报告
实验名称: 中值滤波与均值滤波
实验地点: 二基楼A514
年级: 2014级
姓名: 宋雅婕
学号: 20
实验时间:2016年5月27日
一、实验内容
1.在数据段设变量数组TADA1与TADA2,并存入假设的两组采样值作为某一
采样周期的采样值。
⒉ 设计中值滤波程序求出测量值。
⒊ 设计均值滤波程序求出测量值。
⒋ 每个程序应能将结果显示在屏幕上。
⒌ 在计算机上调试程序,并获得正确结果。
二、 程序框图
1.
:
2. 中值滤波:
三、程序清单
1、中值滤波:
DATAS SEGMENT
TADA1 DB 65,72,33,84,43
N EQU $-TADA1
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS
MOV DS,AX ;给DS段赋值
MOV CX,N-1 ;设置N-1轮比较次数 MOV DX,1 ;设置比较的轮次
AG:
CALL MP ;调用子程序
INC DX
LOOP AG
MOV SI,0
XOR AX,AX ;将AX清零
MOV AL,TADA1[SI+(N-1)/2] ;取出中值
MOV BL,10
DIV BL
PUSH AX
ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H ;输出十进制数的高位
POP AX
ADD AH,30H
MOV DL,AH
MOV AH,2
INT 21H ;输出十进制数的低位
MOV AH,4CH
INT 21H
MP PROC ;冒泡法(从小到大排列)
PUSH CX
MOV CX,N
SUB CX,DX
MOV SI,0
RECMP:
MOV AL,TADA1[SI]
CMP AL,TADA1[SI+1] ;比较相邻两数据的大小
JLE L1 ;若前者小于等于后者,跳转到L1
XCHG AL,TADA1[SI+1] ;若前者大于后者,则两者交换 XCHG AL,TADA1[SI]
L1:
INC SI
LOOP RECMP
POP CX
RET
MP ENDP
CODES ENDS
END START
2、均值滤波:
(1)置入数据:
DATAS SEGMENT
TADA2 DB 65,72,33,84,43
N EQU $-TADA2
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX ;给DS段赋值
MOV CX,N-1 ;设置N-1轮比较次数
MOV DX,1 ;设置比较的轮次
AG:
CALL MP ;调用子程序
INC DX
LOOP AG
MOV SI,0
AND TADA2[SI],0 ;将最小值清零 AND TADA2[SI+N-1],0 ;将最大值清零 MOV CX,N
MOV AL,TADA2[SI]
MOV AH,0
MOV BL,N-2
SUM:
ADD AL,TADA2[SI+1] ;剩余数据求与 INC SI
LOOP SUM
DIV BL ;求平均值
MOV BL,10
DIV BL
PUSH AX
ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H ;输出十进制数的高位POP AX
ADD AH,30H
MOV DL,AH
MOV AH,2
INT 21H ;输出十进制数的低位
MOV AH,4CH
INT 21H
MP PROC ;冒泡法(从小到大排列)
PUSH CX
MOV CX,N
SUB CX,DX
MOV SI,0
RECMP:
MOV AL,TADA2[SI]
CMP AL,TADA2[SI+1] ;比较相邻两数据的大小
JLE L1 ;若前者小于等于后者,跳转到L1 XCHG AL,TADA2[SI+1] ;若前者大于后者,则两者交换
XCHG AL,TADA2[SI]
L1:
INC SI
LOOP RECMP
POP CX
RET
MP ENDP
CODES ENDS
END START
(2)键入数据:
DATAS SEGMENT
D1 DB 'please input numbers',0DH,0AH,'$'
D2 DB 30 DUP (0)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS
MOV DS,AX
LEA DX,D1
MOV AH,9
INT 21H
LEA SI,D2
MOV BX,0
J1:
MOV AH,1
INT 21H
CMP AL,0DH
JZ J2
SUB AL,30H
MOV [SI],AL
INC SI
INC BX
LOOP J1
J2:
MOV CX,BX
DEC CX