四川大学电气信息学院
微机原理与接口技术
实验报告
实验名称: 中值滤波与均值滤波 实验地点: 二基楼A514 年 级: 2014级 姓 名: 宋雅婕 学 号: 2014141443030
实验时间: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
相关推荐: